Skip to content

Automatically generate/renew Let's Encrypt certificates with Certbot on NameSilo DNS

License

Notifications You must be signed in to change notification settings

ethauvin/namesilo-letsencrypt

Repository files navigation

NameSilo Let's Encrypt

License (3-Clause BSD) Python 3.4

Python scripts (hook) to automate obtaining Let's Encrypt certificates, using Certbot DNS-01 challenge validation for domains DNS hosted on NameSilo.

Setup

Using Package Manager

  • For users of Fedora & RHEL, you can install this COPR package, packaged by @cyqsimon.
  • Feel free to package this repo for other OSes; then please submit a PR to reference it here.

Manual Install

The scripts use the tldextract and untangle libraries, if not already installed on your system:

pip install tldextract untangle

Download the latest release archive and expand it in the desired directory.

Configuration

Add your NameSilo API key to the top of the config.py file:

# Get your API Key from: https://www.namesilo.com/account/api-manager
apikey = "YOUR_API_KEY"

Alternatively, the API key can be set in the NAMESILO_API environment variable.

Using with Certbot

To issue or renew a certificate using the hook scripts, try something like:

certbot certonly --manual --email [email protected] \
--agree-tos --manual-public-ip-logging-ok \
--preferred-challenges=dns \
--manual-auth-hook /path/to/authenticator.py \
--manual-cleanup-hook /path/to/cleanup.py \
-d *.example.com -d example.com

Please note that NameSilo DNS propagation takes up to 15 minutes. The scripts will wait 25 minutes before completing, just to be safe.