Updated Dynu DNS Authenticator plugin for Certbot
Project description
certbot-dns-dynu-dev
Updated Dynu DNS Authenticator plugin for Certbot.
This plugin is built from the ground up and follows the development style and life-cycle
of other certbot-dns-* plugins found in the
Official Certbot Repository.
This fork was created because the pull request Add support for Dynu DNS API was not being merged in the upstream project by the original author. It has since been merged in the upstream project. However, this fork has been updated for currency and compatibility with the latest versions of Python and Certbot.
This fork is also being used in the Home Assistant Let's Encrypt add-on via https://github.com/home-assistant/addons/pull/3556
Installation
pip install --upgrade certbot
pip install certbot-dns-dynu-dev
Verify
certbot plugins --text
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* dns-dynu
Description: Obtain certificates using a DNS TXT record with Dynu DNS.
Entry point: dns-dynu = certbot_dns_dynu_dev.dns_dynu:Authenticator
...
...
Configuration
The credentials file e.g. ~/dynu-credentials.ini should look like this:
dns_dynu_auth_token = AbCbASsd!@34
Usage
# Obtain a certificate using the Dynu DNS authenticator
# If certbot is in PATH:
certbot certonly \
--authenticator dns-dynu \
--dns-dynu-credentials ~/dynu-credentials.ini \
-d your-domain.com
# If certbot is not in PATH (e.g., installed via pip in user environment):
python run_certbot.py certonly \
--authenticator dns-dynu \
--dns-dynu-credentials ~/dynu-credentials.ini \
-d your-domain.com
# For subdomain certificates (the main fix provided by this plugin):
python run_certbot.py certonly \
--authenticator dns-dynu \
--dns-dynu-credentials ~/dynu-credentials.ini \
-d my.domain.com \
-d api.my.domain.com
Note: If you get "Command 'certbot' not found" or "No module named certbot.__main__", use the provided run_certbot.py wrapper script instead of the direct certbot command.
Subdomain Support
This plugin specifically fixes subdomain certificate issues by implementing intelligent DNS zone fallback:
my.domain.com→ Creates_acme-challenge.myindomain.comzoneapi.my.domain.com→ Creates_acme-challenge.api.myindomain.comzonedomain.com→ Creates_acme-challengedirectly indomain.comzone
FAQ
Why is the plugin name so long?
This follows the upstream nomenclature: certbot-dns-<dns-provider>.
Why do I have to use : as a separator in the name? Why are the configuration file parameters unusual?
This is a limitation of the Certbot interface towards third-party plugins.
For details read the discussions:
- https://github.com/certbot/certbot/issues/6504#issuecomment-473462138
- https://github.com/certbot/certbot/issues/6040
- https://github.com/certbot/certbot/issues/4351
- https://github.com/certbot/certbot/pull/6372
Development
Create a virtualenv, install the plugin (editable mode), spawn the environment and run the test:
virtualenv -p python3 .venv
source .venv/bin/activate
pip install -e .
python ./certbot_dns_dynu_dev/dns_dynu_test.py
License
Copyright ©️ 2023 - 2025 BigThunderSR
Original Copyright (c) 2021 Bikramjeet Singh
Credits
Helpful Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file certbot_dns_dynu_dev-0.0.9.tar.gz.
File metadata
- Download URL: certbot_dns_dynu_dev-0.0.9.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb431b27f5f3716356f13670c748210c78484c1ced2e732e4903b665a93ffb82
|
|
| MD5 |
644d73a752ac24f95a54501731355a42
|
|
| BLAKE2b-256 |
524bf75f7da97bf53b0856533c1b3a69f829aa4f353be82a1522066ccc03d954
|
Provenance
The following attestation bundles were made for certbot_dns_dynu_dev-0.0.9.tar.gz:
Publisher:
python-publish.yml on BigThunderSR/certbot-dns-dynu-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
certbot_dns_dynu_dev-0.0.9.tar.gz -
Subject digest:
cb431b27f5f3716356f13670c748210c78484c1ced2e732e4903b665a93ffb82 - Sigstore transparency entry: 268168562
- Sigstore integration time:
-
Permalink:
BigThunderSR/certbot-dns-dynu-dev@bc803587ce93d4e048e287ac61102d3b8d5f469e -
Branch / Tag:
refs/tags/0.0.9 - Owner: https://github.com/BigThunderSR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@bc803587ce93d4e048e287ac61102d3b8d5f469e -
Trigger Event:
release
-
Statement type:
File details
Details for the file certbot_dns_dynu_dev-0.0.9-py3-none-any.whl.
File metadata
- Download URL: certbot_dns_dynu_dev-0.0.9-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
321d23efbfb4533044aacbb89280d202817b7734c9257acea95a60cb357f4602
|
|
| MD5 |
3961ad5a84a8a5d69790aaf56ff9ad26
|
|
| BLAKE2b-256 |
0af7ccd77be44bd43c17338cad80d5b4d6b10430efe8738c88151a5c8b71b5d0
|
Provenance
The following attestation bundles were made for certbot_dns_dynu_dev-0.0.9-py3-none-any.whl:
Publisher:
python-publish.yml on BigThunderSR/certbot-dns-dynu-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
certbot_dns_dynu_dev-0.0.9-py3-none-any.whl -
Subject digest:
321d23efbfb4533044aacbb89280d202817b7734c9257acea95a60cb357f4602 - Sigstore transparency entry: 268168565
- Sigstore integration time:
-
Permalink:
BigThunderSR/certbot-dns-dynu-dev@bc803587ce93d4e048e287ac61102d3b8d5f469e -
Branch / Tag:
refs/tags/0.0.9 - Owner: https://github.com/BigThunderSR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@bc803587ce93d4e048e287ac61102d3b8d5f469e -
Trigger Event:
release
-
Statement type: