Skip to content

Latest commit

 

History

History
76 lines (54 loc) · 2.29 KB

README.md

File metadata and controls

76 lines (54 loc) · 2.29 KB

General

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.


Presequence

Getting API access

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.

Credentials

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
certbot_dns_namecheap:dns_namecheap_username=my-username
certbot_dns_namecheap:dns_namecheap_api_key=my-api-key

The path to this file can be provided by using the --certbot_dns_namecheap:dns-namecheap-credentials command-line argument.

Usage

Docker

  • Recommended usage. Create the credentials file and 2 folders for the certificates and logs and run:
docker run -it --rm \
  -v $(pwd)/certs:/etc/letsencrypt \
  -v $(pwd)/logs:/var/log/letsencrypt \
  -v $(pwd)/namecheap.ini:/namecheap.ini \
  schubc/certbot-dns-namecheap certonly \
  -a certbot-dns-namecheap:dns-namecheap \
  --certbot-dns-namecheap:dns-namecheap-credentials=/namecheap.ini \
  --agree-tos \
  -email "[email protected]" \
  -d example.com \
  --test-cert
  • After a successful run, remove the last parameter --test-cert which enabled staging server and run again.

Python

  • If you know what you're doing install the plugin into the same python environment like certbot. In any other case follow the Docker approach above:
git clone https://github.com/iHamsterball/certbot-dns-namecheap.git
pip install certbot-dns-namecheap/
  • Check that certbot discovers the plugin:
certbot plugins
  • Now run the command:
certbot certonly \
  -a certbot-dns-namecheap:dns-namecheap \
  --certbot-dns-namecheap:dns-namecheap-credentials=/namecheap.ini \
  --agree-tos \
  -email "[email protected]" \
  -d example.com \
  --test-cert