skillfed

certbot-dns-multi

Certbot DNS plugin supporting multiple providers, using github.com/go-acme/lego

certbot-dns-multi v5.3.1 688.3K downloads/30d#5,341 on PyPI
Permissive license MIT Active released

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-multi

uv

uv add certbot-dns-multi

poetry

poetry add certbot-dns-multi

Installing 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

certbot dns pluginacme dns challenge automationmulti-provider dns validationlego dns integrationlets encrypt dns providerwildcard certificate dnsautomated dns validation
acmedns-validationcertificate-automation

More WWW/HTTP packages