前言

使用acme.sh申请泛域名证书,并实现自动更新安装

本站域名托管于中国大陆的DNSPod,域名验证时通过预设的DNSPod Token使用DNS API;大陆站和国际站的DNSPod,账号和密钥配置不通用

环境

Ubuntu 22.04.2 LTS

Tengine 2.4.1 (Nginx 1.22)

安装acme.sh

curl https://get.acme.sh | sh -s email=my@example.com

配置DNSPod Token

DNSPod的控制台,创建一个DNSPod Token,而不是一个腾讯云API密钥;DNSPod Token创建后只会显示一次,把它记录下来

执行以下命令,将DNSPod Token临时添加到环境变量

export DP_Id="114514"
export DP_Key="yourkeyishere1919810"

这里对应的是官方文档中的DNSPod.cn

如果是国际站的DNSPod.com,这里的写法是不同的

配置一个泛域名证书

./acme.sh --issue --dns dns_dp -d colorfulstage.cn -d '*.colorfulstage.cn'

默认使用ZeroSSH申请证书,也可以指定使用其它的机构,如Let's Encrypt等

./acme.sh --issue --dns dns_dp -d colorfulstage.cn -d '*.colorfulstage.cn' --server letsencrypt

安装证书时,必须使用acme.sh安装证书才可以自动更新,直接复制到别的目录是不能自动更新的

/root/.acme.sh/acme.sh --installcert \
-d colorfulstage.cn \
--cert-file /home/colorfulstage.cn/cert.pem \
--key-file /home/colorfulstage.cn/key.pem \
--fullchain-file /home/colorfulstage.cn/fullchain.pem \
--reloadcmd "service nginx force-reload"

关于定时任务

使用crontab -e查看定时任务,发现acme.sh自动创建了一个定时任务用于检测全部证书的状态

直接运行这条命令的效果如下图所示

API密钥则是明文保存在/root/.acme.sh/account.conf文件中

最后更新于 2023-08-04