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

DNSPod API 200 18/05/2019

使用 Dnspod api 方式进行 ssl 泛域名续签

最近更新:

今年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 进行一个更新处理:


  yum update -y &&  yum -y install curl cron socat
  

其次,安装 acme.sh:


  curl https://get.acme.sh | sh
  

然后,获取DNS API,

前面提到了我使用的是 DNSPod 进行解析,所以我需要使用 DNSPod 提供的API,在 DNSPod.cn 创建API Token,获取其ID及口令(token),稍后会用到。

接着逐条输入以下指令(其api及key对应你刚创建的api和token值)


  export DP_Id="Example API"
  export DP_Key="Example TOKEN"
  

最后,使用 acme.sh 指令签订域名证书(注意这里的命令是 DNSPod 的签发命令,不同解析指令各不相同):


  acme.sh --issue --dns dns_dp -d example.com -d www.example.com
  

5/29更新,dns_ali

阿里云 DNS 使用的是自家dns解析,以下是获取使用 AccessKey 方法

前两个步骤和 三个步骤 的操作是一样的(安装依赖与acme.sh),以下 粗体 红字 是不同的地方:


  export Ali_Key="ExAmPlEkEy"
  export Ali_Secret="ExAmPlEsEcReTkEyABCDEFG"
  

使用 acme.sh 指令签订域名证书的指令也有所不同(详见 粗体 红字


  acme.sh --issue --dns dns_ali -d oopsays.com -d *.oopsays.com
  

7/27更新,--force 续签

续签时,使用之前相同的域名会提示域名没有变化及下次renew的时间,同时提示可使用 --force 参数强制续签


  acme.sh --issue --dns dns_ali -d oopsays.com -d *.oopsays.com --force
  

其实我这证书7/16就更新了,应该是自动的