certbot-dns-multi
Certbot DNS plugin supporting multiple providers, using github.com/go-acme/lego
What it is and what it does
certbot-dns-multi is a plugin for Certbot that extends its DNS validation capabilities to work with over 117 DNS providers by wrapping the lego ACME client's provider implementations. Instead of being limited to Certbot's built-in DNS plugins, you configure a credentials file pointing to your DNS provider (e.g., Cloudflare, Route 53, Hetzner) and certbot-dns-multi handles the DNS record creation and validation automatically during certificate issuance and renewal.
The plugin works by reading a simple INI configuration file that specifies your DNS provider name and its required credentials, then delegates all DNS operations to lego's provider implementations. It's designed for environments where you need wildcard certificates or DNS-based validation across many different DNS hosting platforms, and it's available as pre-compiled wheels for modern Linux systems or as a snap package for easier deployment.
Use it for:
- Issue wildcard certificates for *.example.com using your existing DNS provider without writing custom validation logic.
- Automate certificate renewal across multiple domains hosted on different DNS providers from a single Certbot configuration.
- Deploy Certbot in containerized environments using the provided Docker images for linux/amd64 and linux/arm64.
- Integrate DNS-based ACME validation into infrastructure-as-code or automated certificate management pipelines.
- Migrate from a limited set of Certbot DNS plugins to a broader ecosystem by switching DNS providers without changing your certificate workflow.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Certbot DNS plugin that automates ACME DNS challenges across 117+ DNS providers by delegating to the lego ACME client's provider integrations.
Yes, if you need DNS-based ACME validation with a DNS provider not natively supported by Certbot and that provider is in lego's list of 117+ supported services. The plugin is actively maintained, has no known vulnerabilities, and is available as pre-compiled wheels on modern Linux systems. Install via pip or snap depending on your Certbot deployment method; on non-x86_64 platforms or older Python versions, you'll need Go 1.24+ installed for compilation.
Install
certbot-dns-multi on PyPI
pip
pip install certbot-dns-multiuv
uv add certbot-dns-multipoetry
poetry add certbot-dns-multiInstalling certbot-dns-multi
Before you install
Medium install friction due to compiled wheels being available for Python 3.11+ on x86_64 Linux, but Go 1.24 or newer is required for compilation on other platforms. The package is actively maintained with a release 24 days ago.
License in practice
MIT license is permissive, allowing use in most commercial and open-source projects with minimal restrictions.
Quickstart
# Install via pip (if Certbot was installed via pip)
sudo /opt/certbot/bin/pip install certbot-dns-multi
# Create credentials file
echo 'dns_multi_provider = cloudflare
CLOUDFLARE_DNS_API_TOKEN="your-token-here"' | sudo tee /etc/letsencrypt/dns-multi.ini
sudo chmod 0600 /etc/letsencrypt/dns-multi.ini
# Issue a certificate
certbot certonly -a dns-multi --dns-multi-credentials=/etc/letsencrypt/dns-multi.ini -d "*.example.com" --dry-run
Go 1.24 or newer must be installed on your system if using a platform without pre-compiled wheels (non-x86_64 Linux or Python < 3.11). Certbot 1.12.0 or newer is required when installing via distro package managers.
Verify before relying
- Whether all 117+ DNS providers listed in the description are actively maintained in the underlying lego project
- Performance characteristics when handling high-volume certificate renewals across multiple domains
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — certbot, acme, josepy |
| Maintenance | actively maintained — 24 days since the last release |
| First released | |
| Downloads | 688,256/month — #5,341 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: certbot_dns_multi-5.3.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; certbot_dns_multi-5.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; certbot_dns_multi-5.3.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; certbot_dns_multi-5.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; certbot_dns_multi-5.3.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; certbot_dns_multi-5.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; certbot_dns_multi-5.3.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; certbot_dns_multi-5.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
certbot-dns-cloudflareAutomates DNS validation for Let's Encrypt…
permissive · top 5,000 on PyPI
dns-lexicondns-lexicon provides a unified Python interface…
permissive · top 15,000 on PyPI
certbot-dns-directadminA Certbot plugin that automates DNS-01…
unclear · top 15,000 on PyPI
certbot-dns-duckdnsA certbot plugin that automates DNS-01…
permissive · top 15,000 on PyPI
certbot-dns-route53A Certbot plugin that automates DNS validation…
permissive · top 15,000 on PyPI
certbotCertbot is a command-line client that…
permissive · top 15,000 on PyPI
acmeImplements the ACME protocol to automate…
permissive · top 5,000 on PyPI
certbot-nginxCertbot-nginx is a plugin for Certbot that…
permissive · top 15,000 on PyPI
fqdnValidates fully-qualified domain names (FQDNs)…
copyleft · top 1,000 on PyPI
octodnsoctoDNS provides tools to manage DNS records…
permissive · top 15,000 on PyPI