Skip to main content

Updated Dynu DNS Authenticator plugin for Certbot

Project description

certbot-dns-dynu-dev

CodeQL Dependabot Updates Python Lint and Test Upload Python Package PyPI - Version

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.my in domain.com zone
  • api.my.domain.com → Creates _acme-challenge.api.my in domain.com zone
  • domain.com → Creates _acme-challenge directly in domain.com zone

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:

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

PowerDNS

dns-lexicon

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

certbot_dns_dynu_dev-0.0.9.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

certbot_dns_dynu_dev-0.0.9-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

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

Hashes for certbot_dns_dynu_dev-0.0.9.tar.gz
Algorithm Hash digest
SHA256 cb431b27f5f3716356f13670c748210c78484c1ced2e732e4903b665a93ffb82
MD5 644d73a752ac24f95a54501731355a42
BLAKE2b-256 524bf75f7da97bf53b0856533c1b3a69f829aa4f353be82a1522066ccc03d954

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file certbot_dns_dynu_dev-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for certbot_dns_dynu_dev-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 321d23efbfb4533044aacbb89280d202817b7734c9257acea95a60cb357f4602
MD5 3961ad5a84a8a5d69790aaf56ff9ad26
BLAKE2b-256 0af7ccd77be44bd43c17338cad80d5b4d6b10430efe8738c88151a5c8b71b5d0

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page