方式一中使用添加text记录实现DNS质询,这种方式采用 --manual交互方式获取的证书,在更新证书时会有问题,因为更新是自动非交互模式。我们也调用云商脚本替代方式一中的添加text记录,云商(阿里,腾讯)的脚本已经有人实现,也方便更新证书。
1、安装certbot工具
yum install -y epel-release
yum install -y certbot
2、申请泛域名证书
1) 开始申请证书
# 下载工具包
git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au /srv/certbot-script/
cd /srv/certbot-script/
chmod u+x ./au.sh
# 我们使用阿里云 DNS 服务,需要填写相应的 Secret 信息(参考 ./au.sh 说明)
vim ./au.sh
# TXY_KEY="AKIDC......."
# TXY_TOKEN="3pLabL...."
# 运行命令进行测试(--dry-run)
certbot certonly -d '*.k4nz.com' -d 'k4nz.com' \
--manual --preferred-challenges dns \
--dry-run \
--manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
--manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
# 当测试成功后,去掉 --dry-run 选项来申请证书
certbot certonly -d '*.k4nz.com' -d 'k4nz.com' \
--manual --preferred-challenges dns \
--manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
--manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
2)、参考配置
(1)domain.ini
如果domain.ini文件没有你的根域名,请自行添加。
(2)DNS API 密钥:
这个 API 密钥什么意思呢?由于需要通过 API 操作阿里云 DNS, 腾讯云 DNS 的记录,所以需要去域名服务商哪儿获取 API 密钥,然后配置在 au.sh 文件中:
ALY_KEY 和 ALY_TOKEN:阿里云 API key 和 Secrec 官方申请文档。 TXY_KEY 和 TXY_TOKEN:腾讯云 API 密钥官方申请文档。 HWY_KEY 和 HWY_TOKEN: 华为云 API 密钥官方申请文档 GODADDY_KEY 和 GODADDY_TOKEN:GoDaddy API 密钥官方申请文档。 (3)选择运行环境 目前该工具支持五种运行环境和场景,通过 hook 文件和参数来调用: PHP(>4以上版本均可) au.sh php aly add/clean:PHP操作阿里云DNS,增加/清空DNS。 au.sh php txy add/clean:PHP操作腾讯云DNS,增加/清空DNS。 au.sh php godaddy add/clean:PHP操作GoDaddy DNS,增加/清空DNS。 Python(支持2.7和3.7,无需任何第三方库) au.sh python aly add/clean:Python操作阿里云DNS,增加/清空DNS。 au.sh python txy add/clean:Python操作腾讯云DNS,增加/清空DNS。 au.sh python hwy add/clean:Python操作华为云DNS,增加/清空DNS。 au.sh python godaddy add/clean:Python操作GoDaddy DNS,增加/清空DNS。 根据自己服务器环境和域名服务商选择任意一个 hook shell(包含相应参数),具体使用见下面。
4、查看证书有效期
certbot certificates
5、手动更新证书
# 续期全部证书:
certbot renew \
--manual --preferred-challenges dns \
--manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
--manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
# 续期单张证书:
certbot renew \
--cert-name "Your Certificate Name" \
--manual --preferred-challenges dns \
--manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
--manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
# 强制更新
certbot renew \
--force-renewal \
--manual --preferred-challenges dns \
--manual-auth-hook "/srv/certbot-script/au.sh python aly add" \
--manual-cleanup-hook "/srv/certbot-script/au.sh python aly clean"
参考连接:https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au https://blog.csdn.net/u013670453/article/details/117340745
|