certbot 基于 DNS 验证的自动证书更新

我们之前写过关于通配符域名的证书申请办法,但是没有写怎样自动化更新证书。有人已经写过一个这样的脚本,可以应用于阿里云,腾讯云以及 GoDaddy 的 DNS。 我们以 阿里云为例子,讲一个大概的流程。

把脚本 git clone 到本地,进入克隆目录后:
#  /usr/local/bin/certbot renew --cert-name 证书名 --manual --preferred-challenges dns --manual-auth-hook "`pwd`/au.sh php aly add" --manual-cleanup-hook "`pwd`/au.sh php aly clean"

简单来说,就是以上这句话,如果有问题, 就检查运行目录下的 cerbot.log 文件, 一般会遇到的就是 API Key 的权限有问题。 在阿里云上设置的 RAM 子账户确保有 DNSFullAccess 的权限。

当然, 相信你首先已经创建了这个账户的 AccessKey 以及 Secret 然后更新到 dns.cfg 文件。

我在上面的命令行里, 使用了 –cert-name 通过证书的名称,你当然也可以用 -d 直接指定域名来使用。

有了这个 au.sh 脚本,就等于可以自动化通配符证书的 renew 了, 不用像以前那样,每三个月,需要手工去跑,然后手工去更新 DNS 里的 TXT 记录。

感谢 Let’s Encrypt!

作者: 甬洁网络

--移动互联网&物联网技术提供商