Skip to main content

Obtain certificates using a DNS TXT record for ISPConfig domains with DDNS module tokens

Project description

certbot-dns-ispconfig-ddns

ISPConfig DNS Authenticator plugin for Certbot using tokens from the ISPConfig DDNS module

This plugin automates the process of completing a dns-01 challenge by creating, and subsequently removing, TXT records.

Test/Build/Publish Tests Status Coverage Status Lint Status

Configuration of ISPConfig

In the DNS -> Dynamic DNS -> Tokens you need to have a token with the following rights:

  • Allowed zones: all DNS zones for which you want to create ssl certificates
  • Allowed record types: TXT
  • Limit records: _acme-challenge

If you want to create certificates for subdomains, they must be included in the Limit records: _acme-challenge,_acme-challenge.subdomain1,_acme-challenge.subdomain2

Installation

pip install certbot-dns-ispconfig-ddns

Usage

Credentials file or cli parameters

You can either use cli parameters to pass authentication information to certbot:

...
--dns-ispconfig-ddns-endpoint <your-ispconfig-url (e.g. https://server.example.com:8080>
--dns-ispconfig-ddns-token <your-ddns-token>

Or to prevent your credentials from showing up in your bash history, you can also create a credentials-file ispconfig-ddns.ini (the name does not matter) with the following content:

dns_ispconfig_ddns_endpoint=<your-ispconfig-url (e.g. https://server.example.com:8080>
dns_ispconfig_ddns_token=<your-ddns-token>

And then instead of using the --dns-ispconfig-ddns-* parameters above, you can use

...
--dns-ispconfig-ddns-credentials </path/to/your/ispconfig-ddns.ini>

You can also mix these usages, though the cli parameters always take precedence over the ini file.

Examples

To acquire a single certificate for both example.com and *.example.com:

certbot certonly \
    --non-interactive \
    --agree-tos \
    --email <your-email> \
    --preferred-challenges dns \
    --authenticator dns-ispconfig-ddns \
    --dns-ispconfig-ddns-endpoint <https://server.example.com:8080> \
    --dns-ispconfig-ddns-token <your-ddns-token> \
    --dns-ispconfig-ddns-propagation-seconds 60 \
    -d 'example.com' \
    -d '*.example.com'

Docker

In order to create a docker container with a certbot-dns-ispconfig installation, create an empty directory with the following Dockerfile:

    FROM certbot/certbot
    RUN pip install certbot-dns-ispconfig-ddns

Proceed to build the image::

    docker build -t certbot/dns-ispconfig-ddns .

Once that's finished, the application can be run as follows::

docker run --rm \
    -v /var/lib/letsencrypt:/var/lib/letsencrypt \
    -v /etc/letsencrypt:/etc/letsencrypt \
    --cap-drop=all \
    certbot/dns-ispconfig-ddns certonly \
    --non-interactive \
    --agree-tos \
    --authenticator dns-ispconfig-ddns \
    --dns-ispconfig-ddns-propagation-seconds 60 \
    --dns-ispconfig-ddns-credentials /etc/letsencrypt/.secrets/domain.tld.ini \
    -d example.com -d '*.example.com'

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_ispconfig_ddns-1.0.6.tar.gz (8.3 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_ispconfig_ddns-1.0.6-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file certbot_dns_ispconfig_ddns-1.0.6.tar.gz.

File metadata

File hashes

Hashes for certbot_dns_ispconfig_ddns-1.0.6.tar.gz
Algorithm Hash digest
SHA256 ecbbe27f90e16067f8c5638be20569d5080b5f246456430ec3ed16a9e6c21dc4
MD5 6d1997b3fc2c56bdb25fee665d8403c2
BLAKE2b-256 a02372c18513cd55f0b0e7d3d408a39c20e24c2997a58bedb4931e019003792e

See more details on using hashes here.

File details

Details for the file certbot_dns_ispconfig_ddns-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for certbot_dns_ispconfig_ddns-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8508c810481ed4634094de59512244cc714e27bdc818da5f8a2da5d56f83ae5a
MD5 a9471b6e1b4cc9108b093636c2829b19
BLAKE2b-256 e3e10a65ec7745ddd686e6e3019b586e4a0aa04ac09bae7b5f71da3e0825e533

See more details on using hashes here.

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