Skip to main content

G-Core DNS Authenticator plugin for Certbot

Project description

PyPI version Documentation Status Tests Build GitHub last commit Code style: black

The certbot_dns_gcore plugin automates the process of completing a dns-01 challenge (acme.challenges.DNS01) by creating, and subsequently removing, TXT records using the G-Core DNS API.

Documentation

For full documentation, including installation, examples, changelog please see readthedocs page.

Install

The plugin is not installed by default. It can be installed by command below.

pip install certbot-dns-gcore

Named Arguments

plugin flags Description
--dns-gcore-credentials G-Core credentials INI file. (Required)
--dns-gcore-propagation-seconds The number of seconds to wait for DNS to propagate before asking the ACME server to verify the DNS record. (Default: 10)

Credentials

Use of this plugin requires a configuration file containing G-Core DNS API credentials. You can use:

  • G-Core API Token, obtained from your profile panel or
  • use G-Core Authentication credentials (email and password) for login page.

G-Core API Token is recommended authentication option.

The token needed by Certbot for add temporary TXT record to zone what you need certificates for.

Example gcore.ini credentials file using restricted API Token (recommended)

# G-Core API token used by Certbot
dns_gcore_apitoken = 0123456789abcdef0123456789abcdef01234567

Example gcore.ini credentials file using authentication credentials (not recommended)

# G-Core API credentials used by Certbot
dns_gcore_email = gcore_user@example.com
dns_gcore_password = 0123456789abcdef0123456789abcdef01234

The path to this file can be provided interactively or using the --dns-gcore-credentials command-line argument. Certbot records the path to this file for use during renewal, but does not store the file's contents.

WARNING: You should protect these API credentials as you would the password to your G-Core account. Users who can read this file can use these credentials to issue arbitrary API calls on your behalf. Users who can cause Certbot to run using these credentials can complete a dns-01 challenge to acquire new certificates or revoke existing certificates for associated domains, even if those domains aren't being managed by this server.

Certbot will emit a warning if it detects that the credentials file can be accessed by other users on your system. The warning reads "Unsafe permissions on credentials configuration file", followed by the path to the credentials file. This warning will be emitted each time Certbot uses the credentials file, including for renewal, and cannot be silenced except by addressing the issue (e.g., by using a command like chmod 600 to restrict access to the file).

Also you can override the default api_url or achieve even more flexibility by specifying auth and dns_api urls separately. Example gcore.ini file:

# G-Core API urls used by Certbot
dns_gcore_api_url = https://api.reseller.com
# implies that authapi available as /iam and dnsapi as /dns

# or
dns_gcore_auth_url = https://api.example.org/iam
dns_gcore_dns_api_url = https://dnsapi.example.com

Examples

To acquire a certificate for example.com

certbot certonly --authenticator dns-gcore --dns-gcore-credentials=./gcore.ini -d 'example.com'

To acquire a certificate for example.com, waiting 80 seconds (recommended) for DNS propagation

certbot certonly --authenticator dns-gcore --dns-gcore-credentials=./gcore.ini --dns-gcore-propagation-seconds=80 -d 'example.com'

To acquire a ecdsa backed wildcard certificate for *.example.com, waiting 80 seconds (recommended) for DNS propagation in isolated directory (e.g. as non-root user)

mkdir certbot && cd certbot
certbot certonly --authenticator dns-gcore --dns-gcore-credentials=./gcore.ini --dns-gcore-propagation-seconds=80 -d '*.example.com' --key-type ecdsa --logs-dir=. --config-dir=. --work-dir=.

For developers

How to run\develop plugin in docker

docker-compose run --rm --service-ports dev bash
# commands below run inside docker container
pip install -e .
touch ./gcore.ini # add g-core dns api credentials
pip install certbot
certbot certonly --authenticator dns-gcore --dns-gcore-credentials=./gcore.ini -d 'example.com'

Main docs file here: certbot_dns_gcore/__init__.py Build html docs files: cd ./docs && sphinx-build -b html . _build/html Main plugin version here: certbot_dns_gcore/__version__.py

How to run tests: please see document .github/workflows/ci.yml

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-gcore-0.1.8.tar.gz (10.2 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_gcore-0.1.8-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file certbot-dns-gcore-0.1.8.tar.gz.

File metadata

  • Download URL: certbot-dns-gcore-0.1.8.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for certbot-dns-gcore-0.1.8.tar.gz
Algorithm Hash digest
SHA256 7b830cc73f3b1925660fe0ded6a444fd6cb4d8e5a48bf46363d56ffef26c3e17
MD5 c5e0c632c050cc71fd7219ba8c3de6a5
BLAKE2b-256 a2f6463f5e814abb34e0e88f20b7b264f4995cd76a92cb7aebb43356b63561ee

See more details on using hashes here.

File details

Details for the file certbot_dns_gcore-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for certbot_dns_gcore-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2302e05aee307732f94319081e74a4f17ee2765383a2ecae3ff15fdea8e579f0
MD5 fad6d098b96a88879f5fa2d758c299dd
BLAKE2b-256 5e89a0b459ee378254fcba11831623e26e6c73f5eb88c65e6204a924bc55b8e6

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