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-multiNo compatibility data collected yet for this library.
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.
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.
Always consult the official `lego` documentation (https://go-acme.github.io/lego/dns/) for the correct credential names for your specific DNS provider.
Run `chmod 0600 /etc/letsencrypt/dns-multi.ini` (or the path to your credentials file) immediately after creation to prevent unauthorized access.
Interact with `certbot-dns-multi` exclusively through `certbot` commands, specifying `-a dns-multi` and `--dns-multi-credentials`.
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`.
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.
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.
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`.
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.