Njalla DNS Authenticator plugin for Certbot
Project description
Certbot plugin for authentication using Njalla
This is a plugin for Certbot that uses the Njalla API to allow customers to prove control of a domain name.
Installation
Python / pip
Use this method if you have also installed certbot
via pip
.
Install the plugin using
pip3 install certbot-dns-njalla
If you are using sudo
with certbot use sudo -H pip3 install certbot-dns-njalla
instead.
Snap
Use this method if you have also installed certbot
via snap
.
snap install certbot-dns-njalla
Now connect the certbot installation with the njalla plugin installation.
snap set certbot trust-plugin-with-root=ok
snap connect certbot:plugin certbot-dns-njalla
Usage
-
Make sure the plugin is installed and connected. You can verify this by running
certbot plugins
. The list should containdns-njalla
. -
Obtain an Njalla API token (found in the settings).
For optimal security you can set these token settings:Setting Value API Methods get-domain list-records add-record remove-record
API Record Prefixes _acme-challenge
API Record Types TXT
-
Create a
njalla.ini
config file with the following contents:dns_njalla_token=<token>
Replace
<token>
with your Njalla API key and ensure permissions are set to disallow access to other users by runningchmod 600 njalla.ini
-
Run
certbot
and direct it to use the plugin for authentication and to use the config file previously created:certbot -a dns-njalla --dns-njalla-credentials njalla.ini -d your-domain.com
Use
*.your-domain.com
if you want to generate it as a wildcard certificate.
Add additional options as required to specify an installation plugin etc.You can use
--dns-njalla-propagation-seconds 30
to reduce the time it waits for DNS propagation to e.g. 30.Remember to use the
-i
flag if you want to use an additional installer plugin, like-i apache
or-i nginx
.
Development
Install local files as python package
Run the following command in the repository root (so you are in the folder containing the setup.py
):
pip3 install -e .[test]
Build and publish to PyPi
Run the following command in the repository root (so you are in the folder containing the setup.py
):
# Ensure latest versions of "build" and "twine" are installed
python3 -m pip install --upgrade build twine
python3 -m build
# Publish to PyPi
twine upload dist/*
Build snap locally
By default a snap is built automatically by snapcraft if there are changes in the git repo. But here is what to do to test the build locally.
Do the basic setup described in the certbot snap readme. (Mainly installing setting up lxd)
Run the following command in the repository root (so you are in the folder containing the setup.py
):
sh generate-snapcraft.sh ./
snapcraft clean --use-lxd
snapcraft --debug --use-lxd
Run tests
Execute the following command inside the root-directory
python -m unittest discover -p '*_test.py'
Distribution
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
Built Distribution
File details
Details for the file certbot_dns_njalla-2.0.2.tar.gz
.
File metadata
- Download URL: certbot_dns_njalla-2.0.2.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b771c6e55b6ecdaadd7a5dd88d3798aa39290414a8d2f916c89b8cb52b29eea8 |
|
MD5 | bf59ce72176cde8a271198da3a0fd67d |
|
BLAKE2b-256 | 33d3c9bf06ebd8c9d63945cb419658f1b637f35a65234b886367c7bf0ed6edb8 |
File details
Details for the file certbot_dns_njalla-2.0.2-py3-none-any.whl
.
File metadata
- Download URL: certbot_dns_njalla-2.0.2-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 668f91f3027edd4c4cbca99095fd5ec66d4ccefcb4b9366367873e25e624e1bd |
|
MD5 | 338f605d24d8d143d6b8ebe51356ac0b |
|
BLAKE2b-256 | 119b0772a3429d89e1bb192319eb8bbefffe732061d3f52a8b0bf0c7f74f752f |