怎样使用Certbot签发和续期证书-DNSpot API

2020年7月21日 | 分类: 【技术】

【准备】

获得DNSPod API密钥:

网址:https://console.dnspod.cn/account/token/apikey

复制 SecretId / SecretKey 备用。

【部署】

参考:https://github.com/penlinux/certbot-dns-dnspod

安装 Certbot 工具:

apt install certbot

安装 TCCLI 工具:

yum install python3-pip
pip install tccli

配置 TCCLI:

tccli configure --profile certbot
# 填写云 API 密钥 SecretId
# 填写云 API 密钥 SecretKey
# 无需更改云产品地域,默认 ap-guangzhou
# 无需更改输出格式,默认 json

安装 certbot-dns-dnspod 插件:

curl -L https://cdn.jsdelivr.net/gh/openbunny/certbot-dns-dnspod/dnspod.sh -o /usr/local/bin/dnspod
chmod +x /usr/local/bin/dnspod
# 如果你的命令行里还找不到这个脚本,可以创建一个符号链接
ln -s /usr/local/bin/dnspod /usr/bin/dnspod

签发证书:

certbot certonly --manual --preferred-challenges=dns --manual-auth-hook "dnspod" --manual-cleanup-hook "dnspod clean" -d *.domain.name -d domain.name

手动续签:

certbot renew --manual --preferred-challenges=dns --manual-auth-hook "dnspod" --manual-cleanup-hook "dnspod clean"

使用定时任务 crontab 定时续签:

sudo crontab -e
30 0 * * * root certbot renew --manual --preferred-challenges=dns --manual-auth-hook "dnspod" --manual-cleanup-hook "dnspod clean" --deploy-hook "nginx -t && systemctl restart nginx"

【排错】

报错:子域名CNAME记录负载均衡数量超出限制 这种大概是什么情况
上海网友:得加钱的情况
安徽网友:dnspod的,把默认线路改下就成
台湾网友:同名记录,存在相同线路的至少两条CNAME。默认CNAME不允许与其他类型记录共存,也不允许和同名CNAME记录共存