使用 acme.sh 自动申请并更新泛域名证书

证书 acme.sh 域名 cert path
发布于 2026-06-12
305

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读

文章主旨:
本文介绍如何利用 acme.sh 配合腾讯云 DNS API 自动化申请泛域名 SSL 证书,并通过自写工具 cert-manager 将证书部署到腾讯云相关服务中,实现证书全生命周期管理。

关键要点:

  1. acme.sh 是基于 ACME 协议的客户端,支持自动申请和续期 SSL 证书,默认使用 ZeroSSL 服务(有效期 90 天,无速率限制)。
  2. 安装 acme.sh 后需注册 ZeroSSL 账号并获取 EAB 凭证,通过 DNS API 模式(以腾讯云 DNSPod 为例)申请泛域名证书。
  3. acme.sh 不建议直接使用缓存目录中的证书文件,应通过 --install-cert 命令将证书复制到指定路径并设置自动续期后的重载命令。
  4. 对于使用了腾讯云 CDN 等服务的场景,需额外更新云服务侧的证书配置。作者自写了 cert-manager 工具,可调用腾讯云 API 一键更新多种服务(如 CDN、CLB、WAF 等)的证书。
  5. 通过将 cert-manager 命令加入 --reloadcmd,可实现证书续期后自动更新本地 Nginx 和腾讯云服务,形成完整自动化流程。

内容结构:

  • 背景: SSL/TLS 证书重要性,泛域名证书适合多子域场景;云厂商缩短免费证书有效期至三个月,推动自动化需求。
  • acme.sh 简介: 基于 ACME 协议的客户端,用于自动申请和续期 SSL 证书。
  • 安装 acme.sh: 执行一条 curl 命令安装到 home 目录,自动添加定时任务更新证书。
  • 注册 ZeroSSL 账号: 默认使用 ZeroSSL(需注册并生成 EAB 凭证),执行命令注册凭证。
  • 申请泛域名证书: 使用 DNS API 模式,通过腾讯云 DNSPod 的 Token 设置环境变量,执行 acme.sh --issue 申请 example.com*.example.com 证书。
  • 安装证书: 使用 acme.sh --install-cert 将证书复制到指定路径,并设置 --reloadcmd 重启 Nginx。
  • 配套工具 cert-manager: 解决 CDN 等云服务证书更新问题,通过 Composer 安装,配置腾讯云 SecretId/SecretKey 和域名映射,运行 tx-cert-manger 更新指定资源。
  • 整合自动化:tx-cert-manger 命令加入 --reloadcmd,实现续期后同步更新腾讯云服务。

文章总结:
本文提供了一套完整的泛域名证书自动化管理方案,从申请、安装到云服务同步,适合管理多子域且使用腾讯云服务的用户,能有效降低证书手动维护成本。

鲁飞

鲁飞(沈唁)的个人公众号,不定时分享和PHP相关的技术资源、开源项目、技术总结等内容。

41 篇文章
浏览 68.8K

还在用多套工具管项目?

一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。

加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线