Skip to main content

VipDNS DNS Authenticator plugin for Certbot

Project description

certbot-dns-vipdns

Certbot DNS authenticator plugin for VipDNS.

Automates DNS-01 challenges by creating and removing _acme-challenge TXT records via the VipDNS LetsEncrypt API.

Installation

pip install certbot-dns-vipdns

Usage

With a credentials file (recommended)

certbot certonly \
  --authenticator dns-vipdns \
  --dns-vipdns-credentials /etc/letsencrypt/vipdns.ini \
  -d example.com

The --dns-vipdns-credentials flag accepts INI, JSON, and YAML files (detected by extension). The API URL defaults to https://vipdns.nl and can be omitted from any credentials file.

Secure the file after creation:

chmod 600 /etc/letsencrypt/vipdns.ini

INI (.ini)

dns_vipdns_api_token = your-token-here

With explicit URL:

dns_vipdns_api_url = https://vipdns.nl
dns_vipdns_api_token = your-token-here

JSON (.json)

{
  "api_token": "your-token-here"
}

With explicit URL:

{
  "api_url": "https://vipdns.nl",
  "api_token": "your-token-here"
}

YAML (.yaml / .yml)

api_token: your-token-here

With explicit URL:

api_url: https://vipdns.nl
api_token: your-token-here

With CLI flags

Credentials can also be passed directly as flags without a credentials file:

certbot certonly \
  --authenticator dns-vipdns \
  --dns-vipdns-api-token your-token \
  -d example.com

Override the API URL if needed:

certbot certonly \
  --authenticator dns-vipdns \
  --dns-vipdns-api-url https://vipdns.nl \
  --dns-vipdns-api-token your-token \
  -d example.com

Automatic renewal

Certbot stores the flags used during certonly in a renewal configuration file under /etc/letsencrypt/renewal/example.com.conf, so subsequent certbot renew calls reuse them automatically, so no extra configuration is needed.

Systemd (recommended)

Most modern Linux distributions ship a certbot.timer systemd unit that runs certbot renew twice a day. Check whether it is active:

systemctl status certbot.timer

Enable and start it if it is not running:

systemctl enable --now certbot.timer

Cron

If systemd is not available, add a cron job:

crontab -e
0 3 * * * certbot renew --quiet

This runs renewal checks daily at 03:00. Certbot only renews certificates that expire within 30 days, so running it daily is safe.

Reloading services after renewal

Use the --deploy-hook flag to reload your web server after a successful renewal:

certbot certonly \
  --authenticator dns-vipdns \
  --dns-vipdns-credentials /etc/letsencrypt/vipdns.ini \
  --deploy-hook "systemctl reload nginx" \
  -d example.com

The hook is saved in the renewal config and runs automatically on every successful renewal.

Token requirements

The API token must be a LetsEncrypt-type token with the letsencrypt:write scope, scoped to the DNS zone(s) you are requesting certificates for.

Tokens can be created in the VipDNS portal under Settings → API tokens.

Wildcard certificates

Wildcard domains are supported. The *. prefix is automatically stripped when calling the API:

certbot certonly \
  --authenticator dns-vipdns \
  --dns-vipdns-credentials /etc/letsencrypt/vipdns.ini \
  -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_vipdns-1.0.0.tar.gz (9.4 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_vipdns-1.0.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file certbot_dns_vipdns-1.0.0.tar.gz.

File metadata

  • Download URL: certbot_dns_vipdns-1.0.0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for certbot_dns_vipdns-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ea33bd91cecaa82d7d5332d05fef17e619881c7e7e23817a3f4f0c6c18ebe66a
MD5 93448a3ad14896a26f77e324d74c8d70
BLAKE2b-256 0291ec4bd0309dddfaf08a6ad63dfe974d34d5c14be027cce4e85483cf044a99

See more details on using hashes here.

File details

Details for the file certbot_dns_vipdns-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: certbot_dns_vipdns-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for certbot_dns_vipdns-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7023bb3a06515cd7bb8f62a2ea8b08b17dc619f7b6af1801be08866a23ed5a89
MD5 56182021fa00e4e185367a39f7d65ec2
BLAKE2b-256 9ed40be8b8fcc2b6265c2ce7ba1ca1ce5a6a8d9726a90205e2684dad89630cf7

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