Lets Encrypt 弃用 tls-sni-01后 使用 Dnspod api 方式进行ssl泛域名续签

2024-03-12 09:47:49 浏览数 (3)

使用 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就更新了,应该是自动的

1 人点赞