PowerAdmin DNS Authenticator plugin for Certbot
This plugin automates the process of completing a dns-01 challenge by creating, and subsequently removing, TXT records using the PowerAdmin API.
pip install certbot-dns-poweradmin
Your PowerAdmin installation needs to have the API enabled. The plugin supports both API v1 and v2.
You'll need an API key with permissions to:
- List zones
- Create DNS records
- Delete DNS records
- Create a credential file (e.g.,
/etc/letsencrypt/poweradmin.ini):
dns_poweradmin_api_url = https://poweradmin.example.com
dns_poweradmin_api_key = your-api-key-here
dns_poweradmin_api_version = v2The api_version is optional and defaults to v2. Set it to v1 if your PowerAdmin installation uses the older API.
- Secure the credential file:
chmod 600 /etc/letsencrypt/poweradmin.ini
- Run certbot:
certbot certonly \
--authenticator dns-poweradmin \
--dns-poweradmin-credentials /etc/letsencrypt/poweradmin.ini \
-d example.com
| Argument | Description |
|---|---|
--dns-poweradmin-credentials |
Path to credentials INI file (required) |
--dns-poweradmin-propagation-seconds |
Seconds to wait for DNS propagation (default: 120) |
Get a certificate for a single domain:
certbot certonly \
--authenticator dns-poweradmin \
--dns-poweradmin-credentials /etc/letsencrypt/poweradmin.ini \
-d example.com
Get a wildcard certificate:
certbot certonly \
--authenticator dns-poweradmin \
--dns-poweradmin-credentials /etc/letsencrypt/poweradmin.ini \
-d example.com \
-d "*.example.com"
With custom propagation time:
certbot certonly \
--authenticator dns-poweradmin \
--dns-poweradmin-credentials /etc/letsencrypt/poweradmin.ini \
--dns-poweradmin-propagation-seconds 300 \
-d example.com
FROM certbot/certbot
RUN pip install certbot-dns-poweradminBuild and run:
docker build -t certbot/dns-poweradmin .
docker run --rm \
-v /etc/letsencrypt:/etc/letsencrypt \
-v /var/lib/letsencrypt:/var/lib/letsencrypt \
certbot/dns-poweradmin certonly \
--authenticator dns-poweradmin \
--dns-poweradmin-credentials /etc/letsencrypt/poweradmin.ini \
-d example.com
If certbot plugins doesn't show dns-poweradmin, ensure both certbot and the plugin are installed in the same Python environment:
# Check where certbot is installed
which certbot
# If using system certbot but plugin in venv, either:
# Option 1: Install certbot in the same venv
pip install certbot certbot-dns-poweradmin
# Option 2: Use certbot from the venv
python -m certbot pluginsWhen using a virtual environment, install both certbot and the plugin together:
python3 -m venv certbot-env
source certbot-env/bin/activate
pip install certbot certbot-dns-poweradmin
# Run certbot from the venv
certbot plugins # should show dns-poweradmin- Verify your API URL is correct and accessible
- Check that your API key has the required permissions
We thank stepping stone AG for their support of this project.
Apache License 2.0