# NameSilo Let's Encrypt [](http://opensource.org/licenses/BSD-3-Clause) [](https://www.python.org/) Python scripts (hook) to automate obtaining [Let's Encrypt](https://letsencrypt.org/) certificates, using [Certbot](https://certbot.eff.org/) DNS-01 challenge validation for domains DNS hosted on [NameSilo](https://www.namesilo.com/). ## Setup The scrips use the [untangle](https://untangle.readthedocs.io/en/latest/) library, if not already installed on your system: ``` pip install untangle ``` ## Configuration Add your [NameSilo API key](https://www.namesilo.com/account_api.php) to the top of the `config.py` file: ```python # Get your API Key from: https://www.namesilo.com/account_api.php apikey = "YOUR_API_KEY" ``` Alternatively, the API key can be set in the `NAMESILO_API` environment variable. ## Using with Certbot To issue a new certificate using the hook scripts, try something like:
certbot certonly --manual --email you@example.com \ --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.comOr to renew an existing certificate:
certbot renew --manual --email you@example.com \ --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.comPlease note that NameSilo DNS propagation takes up to **15 minutes**, so the scripts will wait 16 minutes before completing.