Not affiliated
For now I'm just test stuff out here. I don't know what I'm doing and hope I have to do as little as possible.
- Namechaep's api wants a client ip argument but according to Lexicon and my testing you can just send any ip which is than updated on namecheaps side. #1
- pip module
- We're on PyPi now! * yay *
pip install certbot-dns-namecheap
This plugin automates the process of completing a dns-01
challenge by creating, and subsequently removing, TXT records using the (XML-RPC-based) namecheap.com API.
Namecheap has certain requirements for activation to prevent system abuse. In order to have API enabled for your account, you should meet one of the following requirements:
- have at least 20 domains under your account;
- have at least $50 on your account balance;
- have at least $50 spent within the last 2 years.
Use of this plugin requires a configuration file containing Namecheap API credentials, obtained from your Namecheap account's API Managenment page.
# Namecheap API credentials used by Certbot
dns_namecheap_username=my-username
dns_namecheap_api_key=my-api-key
The file should only be readable by root. If other users or programms get access to your api credentials they can takeover your namecheap account aswell as domains!
sudo chown root:root /path/to/namecheap.ini
sudo chmod 0600 /path/to/namecheap.ini
The path to this file can be provided by using the --dns-namecheap-credentials
command-line argument.
- Recommended usage. Create the credentials file and 2 folders for the certificates and logs and run:
git clone https://github.com/knoxell/certbot-dns-namecheap.git
cd certbot-dns-namecheap
docker build . -t certbot-dns-namecheap
docker run -it --rm \
-v $(pwd)/certs:/etc/letsencrypt \
-v $(pwd)/logs:/var/log/letsencrypt \
-v $(pwd)/namecheap.ini:/namecheap.ini \t
certbot-dns-namecheap certonly \
-a dns-namecheap \
--dns-namecheap-credentials=/namecheap.ini \
--agree-tos \
--no-eff-email \
-email "[email protected]" \
-d example.com \
--dry-run
- After a successful run, remove the last parameter
--dry-run
which enabled staging server and run again.
- If you know what you're doing install the plugin into the same python environment like
certbot
. In any other case follow theDocker
approach above:
git clone https://github.com/knoxell/certbot-dns-namecheap.git
pip install certbot-dns-namecheap/
- Check that
certbot
discovers the plugin:
certbot plugins
- Now run the command:
certbot certonly \
-a dns-namecheap \
--dns-namecheap-credentials=/namecheap.ini \
--agree-tos \
--no-eff-email \
-email "[email protected]" \
-d example.com \
--dry-run