在日常开发和部署中,HTTPS 已经成为网站的标配,SSL 证书强制 3 个月失效,每次都要手动更新,很烦人。acme.sh 是一个轻量级、纯 Shell 实现的 ACME 协议客户端,让我们可以更方便、自动化地申请和续期 SSL 证书。文章将以 Tencent Cloud DNS 为例,帮你快速实现 DNS 验证证书自动化配置。😎
🔍 环境准备
你已经拥有一个培基于腾讯云域名的域名(如:
qg6.top)新建 API 密钥 (SecretId / SecretKey)
💪 安装 .acme.sh邮箱设置为你接受通知的邮箱号
curl https://get.acme.sh | sh -s email=251623126@qq.com加入 PATH:
export PATH="~/.acme.sh":$PATH
检查版本或帮助:
acme.sh --version
acme.sh --help
🔧 设置腾讯云 DNS API 环境变量
export DP_Id="123456" # 你的腾讯云资源证书的 SecretId
export DP_Key="abcdefg123456" # 对应的 SecretKey
这里 Tencent DNS API 是用 dns_dp
🔢 通过 DNS 验证申请 SSL 证书
以 qg6.top 为例:
~/.acme.sh/acme.sh --issue --dns dns_dp -d qg6.top --keylength ec-256成功后,证书将保存在:
~/.acme.sh/qg6.top/
📂 部署证书到 Nginx
acme.sh --install-cert -d qg6.top \
--key-file /etc/nginx/ssl/qg6.top.key \
--fullchain-file /etc/nginx/ssl/qg6.top.cer \
--reloadcmd "nginx -s reload"
自动把证书部署到指定路径,并重载 nginx
♻️ 自动续期设置
默认 acme.sh 会定期运行 cron 任务:
crontab -l
看到类似下面的内容即为成功:
0 0 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh" > /dev/null
总结
自动化配置 HTTPS 还是很有必要的,.acme.sh 配合 Tencent DNS API 就能快速实现无人倾入的证书更新,很适合自动部署、CI/CD 场景。