Plugin for certbot to obtain certificates using a DNS TXT record for Porkbun domains
certbot_dns_porkbun is a plugin for certbot. It handles the TXT record for the DNS-01 challenge for Porkbun domains. The plugin takes care of the creation and deletion of the TXT record using the Porkbun API.
You need at least version 3.6
of Python installed. If you want to install the plugin with pip, then you must also have
pip installed beforehand.
If you already have certbot installed, make sure you have at least version 1.1.0
installed.
You can check what version of certbot is installed with this command:
certbot --version
If you don't have certbot installed yet, then the PyPI version of certbot will be installed automatically during the installation.
Note: If you want to run certbot with root privileges, then you need to install the plugin as root too. Otherwise, certbot cannot find the plugin.
Use the following command to install certbot_dns_porkbun with pip:
pip3 install certbot_dns_porkbun
You can also very easily update to the newest version:
pip3 install certbot_dns_porkbun -U
If you prefer to install the plugin from the source code:
git clone https://github.com/infinityofspace/certbot_dns_porkbun.git
cd certbot_dns_porkbun
pip3 install .
To check if the plugin is installed and detected properly by certbot, you can use the following command:
certbot plugins
The resulting list should include dns-porkbun
if everything went fine.
Below are some examples of how to use the plugin.
Generate a certificate with a DNS-01 challenge for the domain example.org
:
certbot certonly \
--non-interactive \
--agree-tos \
--email <your-email-address> \
--preferred-challenges dns \
--authenticator dns-porkbun \
--dns-porkbun-key <your-porkbun-api-key> \
--dns-porkbun-secret <your-porkbun-api-secret> \
--dns-porkbun-propagation-seconds 60 \
-d "example.com"
Generate a wildcard certificate with a DNS-01 challenge for all subdomains *.example.com
(Note: the wildcard
certificate does not contain the root domain itself):
certbot certonly \
--non-interactive \
--agree-tos \
--email <your-email-address> \
--preferred-challenges dns \
--authenticator dns-porkbun \
--dns-porkbun-key <your-porkbun-api-key> \
--dns-porkbun-secret <your-porkbun-api-secret> \
--dns-porkbun-propagation-seconds 60 \
-d "*.example.com"
Generate a certificate with a DNS-01 challenge for the domain example.com
without an account (i.e. without an email
address):
certbot certonly \
--non-interactive \
--agree-tos \
--register-unsafely-without-email \
--preferred-challenges dns \
--authenticator dns-porkbun \
--dns-porkbun-key <your-porkbun-api-key> \
--dns-porkbun-secret <your-porkbun-api-secret> \
--dns-porkbun-propagation-seconds 60 \
-d "example.com"
Generate a staging certificate (i.e. temporary testing certificate) with a DNS-01 challenge for the
domain example.com
:
certbot certonly \
--non-interactive \
--agree-tos \
--email <your-email-address> \
--preferred-challenges dns \
--authenticator dns-porkbun \
--dns-porkbun-key <your-porkbun-api-key> \
--dns-porkbun-secret <your-porkbun-api-secret> \
--dns-porkbun-propagation-seconds 60 \
-d "example.com" \
--staging
You can find al list of all available certbot cli options in the official documentation of certbot.
All modules used by this project are listed below:
Name | License |
---|---|
certbot | Apache 2.0 |
requests | Apache 2.0 |
zope.interface | ZPL-2.1 |
setuptools | MIT |
pkb_client | MIT |
Furthermore, this readme file contains embeddings of Shields.io and PePy.
MIT - Copyright (c) Marvin Heptner