07月14, 2018

acme.sh调用腾讯云 DNSPod API 申请 Let’s Encrypt 泛域名证书

一、安装acme.sh

curl https://get.acme.sh | sh
source ~/.bashrc


二、在 DNSPod 控制台申请 API Token,这里我们获取到了 ID 和 Token 以便接下来使用。


三、依次输入以下命令,其中 DP_Id 是刚刚申请的 ID,DP_Key 是刚刚申请的 Token 值,第一个 -d 后面填写一级域名,第二个 -d 后面填写泛域名。

export DP_Id="1000"
export DP_Key="394f8762a1232cf5aad40fc2d5c0dabb"
acme.sh --issue --dns dns_dp -d xxx.com -d *.xxx.com

证书就会自动生成了. 这里给出的 api id 和 api key 会被自动记录下来, 将来你在使用 dnspod api 的时候, 就不需要再次指定了. 直接生成就好了


四、安装证书

acme.sh --installcert -d xxx.com -d *.xxx.com  \
--keypath       /usr/local/nginx/conf/cert/xxx.com/private.key  \
--fullchainpath /usr/local/nginx/conf/cert/xxx.com/fullchain.cer \
--reloadcmd     "service nginx force-reload"

acme.sh就记住了这些参数,以后自动更新证书就会自动按照这些参数运行。另外这里用的是 service nginx force-reload, 不是 service nginx reload, 是根据acme.sh的官方说明来的,据测试, reload 并不会重新加载证书, 所以用的 force-reload。


五、配置nginx


六、更新证书

目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.


七、升级acme.sh

目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.

升级 acme.sh 到最新版 :

acme.sh --upgrade


如果你不想手动升级, 可以开启自动升级:

acme.sh --upgrade --auto-upgrade

之后, acme.sh 就会自动保持更新了.


你也可以随时关闭自动更新:

acme.sh --upgrade --auto-upgrade 0


本文链接:https://lxyit.com/article/show/124.html

-- EOF --