Registry / devops / certbot-dns-multi

certbot-dns-multi

JSON →
library4.33.0pypypiunverified

Certbot DNS plugin supporting multiple DNS providers by integrating with the `go-acme/lego` ACME client, which currently supports over 117 different DNS providers. It simplifies obtaining wildcard certificates and automating DNS-01 challenges for Certbot users. The current version is 4.33.0, and it appears to be actively maintained with regular updates.

pip install certbot-dns-multi
INSTALL
IMPORT
SIG · CERTBOT-DNS-MULTI
C
certbot-dns-multi
devopspythonv4.33.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

To use `certbot-dns-multi`, create a credentials file specifying your DNS provider and API credentials. Secure this file, then invoke Certbot with the `dns-multi` authenticator and point to your credentials file. This example uses Cloudflare, but you must refer to the `go-acme/lego` documentation for the specific environment variables required by your chosen DNS provider.

# Create a credentials file (e.g., /etc/letsencrypt/dns-multi.ini) # Replace 'cloudflare' with your DNS provider, and add required API tokens/keys. # Consult https://go-acme.github.io/lego/dns/ for provider-specific environment variables. # Example for Cloudflare: # dns_multi_provider = cloudflare # CLOUDFLARE_API_TOKEN="${CLOUDFLARE_API_TOKEN}" # Secure the credentials file sudo chmod 0600 /etc/letsencrypt/dns-multi.ini # Issue a wildcard certificate using dns-multi plugin (example with Cloudflare) # Replace 'example.com' with your domain and ensure CLOUDFLARE_API_TOKEN is set as an environment variable or hardcoded in the ini for testing. certbot certonly \ -a dns-multi \ --dns-multi-credentials /etc/letsencrypt/dns-multi.ini \ -d "*.example.com" \ --dry-run
certbot --version
Debug
Known issues
gotchaInstalling via `pip` on certain Linux x86_64 / amd64 distributions for Python versions earlier than 3.11, or on other platforms, may require Go 1.24+ to be installed on your server for the plugin to compile successfully.
fix
Ensure Go 1.24 or newer is installed if `pip install` fails to find a pre-compiled wheel for your system, or use the `snap` installation method if available.
affects: All versions
gotchaThe plugin is controlled via a credentials file (`.ini`). The specific environment variable names for DNS provider API keys/tokens (e.g., `CLOUDFLARE_API_TOKEN`) are dictated by the underlying `go-acme/lego` library, not `certbot-dns-multi`.
fix
Always consult the official `lego` documentation (https://go-acme.github.io/lego/dns/) for the correct credential names for your specific DNS provider.
affects: All versions
gotchaThe credentials file containing API keys/tokens must be secured with strict permissions.
fix
Run `chmod 0600 /etc/letsencrypt/dns-multi.ini` (or the path to your credentials file) immediately after creation to prevent unauthorized access.
affects: All versions
gotchaThis library is a Certbot plugin and is designed to be used via the `certbot` command-line interface. It does not expose a direct Python API for programmatic interaction.
fix
Interact with `certbot-dns-multi` exclusively through `certbot` commands, specifying `-a dns-multi` and `--dns-multi-credentials`.
affects: All versions
Errors
Common errors & fixes
Building wheel for certbot-dns-multi (pyproject.toml) did not run successfully.
This error often occurs during `pip install` when the Go compiler, which is a dependency for `certbot-dns-multi` when installing from source, is not found on the system.
fix
Install Go (version 1.24 or newer) on your system before attempting `pip install`. For example, on Debian/Ubuntu: `sudo apt install golang` or follow instructions for your specific OS. Alternatively, use the `snap` installation method: `sudo snap install certbot-dns-multi`.
ERROR Requested token doesn't exist
This error indicates that the DNS provider's API token or credentials, specified in the `dns-multi.ini` file, are either missing, incorrect, or the environment variables for the specific provider (e.g., `CLOUDFLARE_DNS_API_TOKEN`) have not been set.
fix
Ensure your `dns-multi.ini` file correctly specifies `dns_multi_provider` and the required API credentials for your DNS provider. Refer to the `go-acme/lego` documentation for your specific provider's credential requirements and ensure corresponding environment variables are correctly set or the `.ini` file contains the necessary `_API_TOKEN` or `_API_KEY` entries.
DNS problem: NXDOMAIN looking up TXT for _acme-challenge.domain.com
Certbot could not find the `_acme-challenge` TXT record in your domain's DNS. This usually happens due to incorrect DNS record creation, DNS propagation delays, or using the wrong DNS provider credentials.
fix
Verify that the `_acme-challenge` TXT record, including its value, has been correctly added to your domain's DNS zone for the specified domain. Check for typos. If the record is correct, increase the `--dns-multi-propagation-seconds` value in your Certbot command to allow more time for DNS changes to propagate across the internet before validation attempts.
Unsafe permissions on credentials configuration file
Certbot detected that the credentials file (`dns-multi.ini`) containing sensitive API keys has permissions that are too broad, making it readable by other users on the system.
fix
Restrict access to the credentials file so that only the user running Certbot can read it. For example: `sudo chmod 600 /etc/letsencrypt/dns-multi.ini`.
certbot: error: unrecognized arguments: --dns-multi
The `certbot-dns-multi` plugin is either not installed in the Python environment Certbot is using or Certbot cannot find it.
fix
Ensure `certbot-dns-multi` is installed in the same Python environment as your `certbot` installation. If `certbot` is installed via a package manager, try running `sudo pip install certbot-dns-multi` or ensure your `certbot` command is linked to the Python environment where the plugin is installed.
Upgrade
Version history
4.33.0latest on PyPI · released Apr 1, 2026
Audit
Dependencies
certbotrequiredThis is a Certbot plugin and requires Certbot itself. Requires Certbot 1.12.0 or newer for certain installation methods.
Agent activity
26 hits · last 30 days
node
24
OpenAI (training)
1
Resources
certbot-dns-multi — pip install certbot-dns-multi · libregistry