使用 Dnspod api 方式进行 ssl 泛域名续签
最近更新:11/29/2021
今年3月份的时候,Let’s Encrypt 给我的邮箱发了好几封邮件,具体内容大概是 Let’s Encrypt因为安全性问题已经将TLS-SNI-01验证方法标记为过时,而且很快就不能使用了, 建议还在使用的尽快安装他们官网去更新续签。看了个半懂,不过那时证书还有两月到期就没去管它…
这里踩过的坑以后再说,先说使用 dnspod.cn 的 api 进行泛域名续签吧!
DNSPod API id token
由于我使用的是腾讯云的 DNSPod 解析API,其他解析(比如阿里云),你可以在 acme.sh/wiki/dnsapi 查看适合你的方法。
三个步骤:
首先,我们对 ACME 的依赖 socat 及 yum 进行一个更新处理:
代码语言:javascript复制yum update -y && yum -y install curl cron socat
其次,安装 acme.sh:
代码语言:javascript复制curl https://get.acme.sh | sh
然后,获取DNS API,
前面提到了我使用的是 DNSPod 进行解析,所以我需要使用 DNSPod 提供的API,在 DNSPod.cn 创建API Token,获取其ID及口令(token),稍后会用到。
接着逐条输入以下指令(其api及key对应你刚创建的api和token值)
代码语言:javascript复制export DP_Id="Example API"
export DP_Key="Example TOKEN"
最后,使用 acme.sh 指令签订域名证书(注意这里的命令是 DNSPod 的签发命令,不同解析指令各不相同):
代码语言:javascript复制acme.sh --issue --dns dns_dp -d example.com -d www.example.com
5/29更新,dns_ali
阿里云 DNS 使用的是自家dns解析,以下是获取使用 AccessKey 方法
前两个步骤和 三个步骤 的操作是一样的(安装依赖与acme.sh),以下 粗体 红字 是不同的地方:
代码语言:javascript复制export Ali_Key="ExAmPlEkEy"
export Ali_Secret="ExAmPlEsEcReTkEyABCDEFG"
使用 acme.sh 指令签订域名证书的指令也有所不同(详见 粗体 红字
代码语言:javascript复制acme.sh --issue --dns dns_ali -d 2broear.com -d *.2broear.com
7/27更新,–force 续签
续签时,使用之前相同的域名会提示域名没有变化及下次renew的时间,同时提示可使用 –force 参数强制续签
代码语言:javascript复制acme.sh --issue --dns dns_ali -d 2broear.com -d *.2broear.com --force
其实我这证书7/16就更新了,应该是自动的