Certbot DNS plugin
This plugin uses certbot's dns-01 challenge to create and delete TXT records on a Wedos domain server, thanks to the API interface called WAPI provided by Wedos. With this plugin, you can issue wildcard SSL/TLS certificates.
Installation
Prerequisites
The following software is required to use this plugin.
| Name | Install | Version |
|---|---|---|
| python | Link | >= 3.10.0 |
| pip | Link | >= 24.1 |
| certbot | Link | >= 3.0.0 |
Note that in theory, even older versions should work, but it has not been tested.
WAPI
You will also need to have WAPI activated for communication between Wedos and the plugin. To activate WAPI, you can read the article from Wedos, available at this link WAPI activation and settings.
CAUTION: Please note that the IP address of the server where running Certbot must be whitelisted in WAPI, otherwise it will not work.
Installation methods
With snap (recommended)
sudo snap install certbot-dns-wedos
sudo snap set certbot trust-plugin-with-root=ok
sudo snap connect certbot:plugin certbot-dns-wedos
With pip
sudo pip install certbot-dns-wedos
From source
git clone https://github.com/clazzor/certbot-dns-wedos.git
sudo pip install ./certbot-dns-wedos
After installation, the cloned repository can be deleted.
rm -r certbot-dns-wedos
Setup
Arguments
| Name | Required | Description |
|---|---|---|
| --dns-wedos-propagation-seconds | ❌ | Seconds to wait for DNS propagation before verifying the DNS record with ACME server. |
| --dns-wedos-credentials | ✅ | The complete path to the INI file for credentials containing data for authorization. |
The default value of
propagation-secondsis 450. If there is a problem with validation, increase the number. The lower limit is 300.
Command example
The basic structure of the command is the same as with all other certbot plugins, we define which plugin to use, propagation-seconds, credentials file and domains, like this:
certbot certonly \
--authenticator dns-wedos \
--dns-wedos-propagation-seconds 450 \
--dns-wedos-credentials /path/to/the/file.ini \
-d example.com -d *.example.com
Credentials file
| Name | Required | Description |
|---|---|---|
| dns_wedos_user | ✅ | The user (email) for WAPI. |
| dns_wedos_auth | ✅ | The auth (password) for WAPI. |
| dns_wedos_ttl | ❌ | The TTL for the DNS record. (default: 300) |
This is what the credentials file for the wedos plugin should look like.
dns_wedos_user=user@example.com
dns_wedos_auth=examplepassword
- Values are written after an equals sign
=. For values with spaces, such ashello world, a space can be used. - For the ini file you should apply permission:
chmod 600 file.inifor security reasons.
Reloading certificates on services
Usually services like haproxy, nginx, apache and more need to reload to retrieve a new certificate.
The --deploy-hook is used for this purpose.
Example
certbot certonly \
--authenticator dns-wedos \
--dns-wedos-propagation-seconds 450 \
--dns-wedos-credentials /path/to/the/file.ini \
-d example.com -d *.example.com \
--deploy-hook "COMMAND_TO_RELOAD_SERVICE"
Nginx
--deploy-hook "systemctl reload nginx"
Apache
--deploy-hook "systemctl reload apache2"
HAProxy
HAProxy requires the certificate and private key to be joined into a single .pem file:
--deploy-hook "cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/haproxy/certs/combined.pem && systemctl reload haproxy"
Errors
If an error occurs, Certbot will display the type of error that has occurred.
- If you get this error "Certbot failed to authenticate some domains (authenticator: dns-wedos)", increase the value in the
--dns-wedos-propagation-secondsargument. - Standard HTTP error codes are returned in case of communication issues with the WAPI endpoint.
- If it is an error related to communication between the plugin and WAPI, you will receive a WAPI return code.
Used Modules/Libraries
The following modules and libraries are used by this plugin (useful for debugging purposes):
| Name | License |
|---|---|
| certbot | Apache 2.0 |
| datetime | PSF |
| hashlib | PSF |
| json | PSF |
| logging | PSF |
| typing | PSF |
| pytz | MIT |
| requests | Apache 2.0 |
| setuptools | MIT |
| tldextract | BSD 3-Clause |
Metadata
Release files for certbot-dns-wedos 2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| certbot_dns_wedos-2.5.tar.gz | 11.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| certbot_dns_wedos-2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.0 kB
Release files / certbot_dns_wedos-2.5.tar.gz
| Download URL | certbot_dns_wedos-2.5.tar.gz |
|---|---|
| Size | 11.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dfebde97fec00a30f609ee343db60ec5058ae8ad06b8a3a1f9a085c6654e0109
|
|
BLAKE2b-256 checksum How to use checksums |
39d1464e3061ffb690d5d969f23d393d26a5bcd928a3c0d9330c4397fbc7ac8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency logRelease files / certbot_dns_wedos-2.5-py3-none-any.whl
| Download URL | certbot_dns_wedos-2.5-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26428fea4392bbe77d14a38314453abc46ea152587f2a2e803d6d11dfa1836a9
|
|
BLAKE2b-256 checksum How to use checksums |
a50e6c82865a4d3cb52f7f8023520c80b4f6c657ac2fa7d14ca5165fc9a40777
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency log