Certbot Renew with DNSPod
宽带的80、443端口不能使用了,更新免费的SSL证书(Let’s Encrypt的免费证书)就成问题了。后来找到相关的文章,说是可以通过DNS验证并更新,指向以下官方网址:
User Guide -> Getting certificates (and choosing plugins) -> dns-plugins
https://certbot.eff.org/docs/using.html#dns-plugins
找DNSPod的插件时,发现github上居然有不同的版本(名称却是一样的),因此走了弯路(浪费了一个下午)。最后按照这个的说明,成功更新了证书。
DNSPOD DNS Authenticator plugin for Certbot
https://github.com/SkyLothar/certbot-dns-dnspod/blob/master/README.rst
简单来说,就是
1)去DNSPod.cn申请api授权
2)安装插件
pip install certbot-dns-dnspod
3)生成插件配置文件,例如保存到文件/etc/cetbot-dns-dnspod-credentials.ini
。重点是双引号不可缺,token的格式是id和token以逗号分隔
certbot_dns_dnspod:dns_dnspod_email = "DNSPod账户的Email"
certbot_dns_dnspod:dns_dnspod_api_token = "api_id,api_token"
4)配置文件设置权限(只是为了安全,此步可不做)
sudo chmod 600 /etc/cetbot-dns-dnspod-credentials.ini
5)更新证书。xxx.com需要替换为相关域名。
certbot certonly -a certbot-dns-dnspod:dns-dnspod \
--certbot-dns-dnspod:dns-dnspod-credentials /etc/cetbot-dns-dnspod-credentials.ini \
-d xxx.com
证书更新成功后,会发现certbot的配置文件(/etc/letsencrypt/renewal/xxx.com.conf)也更新了。