使用 acme.sh 自动申请并更新泛域名证书
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
鲁飞
扫码关注公众号
扫码阅读
手机扫码阅读
文章主旨:
本文介绍如何利用 acme.sh 配合腾讯云 DNS API 自动化申请泛域名 SSL 证书,并通过自写工具 cert-manager 将证书部署到腾讯云相关服务中,实现证书全生命周期管理。
关键要点:
- acme.sh 是基于 ACME 协议的客户端,支持自动申请和续期 SSL 证书,默认使用 ZeroSSL 服务(有效期 90 天,无速率限制)。
- 安装 acme.sh 后需注册 ZeroSSL 账号并获取 EAB 凭证,通过 DNS API 模式(以腾讯云 DNSPod 为例)申请泛域名证书。
- acme.sh 不建议直接使用缓存目录中的证书文件,应通过
--install-cert命令将证书复制到指定路径并设置自动续期后的重载命令。 - 对于使用了腾讯云 CDN 等服务的场景,需额外更新云服务侧的证书配置。作者自写了
cert-manager工具,可调用腾讯云 API 一键更新多种服务(如 CDN、CLB、WAF 等)的证书。 - 通过将
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,实现续期后同步更新腾讯云服务。
文章总结:
本文提供了一套完整的泛域名证书自动化管理方案,从申请、安装到云服务同步,适合管理多子域且使用腾讯云服务的用户,能有效降低证书手动维护成本。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
给你的项目增加 Git WebHooks
让你的项目支持 WebHooks,并且可以自定义 WebHooks 的规则。
MQTT 怎么在单独一个端口上分别使用 v3.x 和 v5.0 协议解析?
在 1883 端口上,同时处理 v3.1、v3.1.1 和 v5.0 这 3 种协议等级
怎么分别给公司和个人项目设置 Git User?
从第一天使用 Git 开始,每个人都逃不过这个配置
Docsify v5.0.0-rc.3:支持 GitHub 风格的提示框
无论是 GitHub 风格的提示框、跨文档片段提取,还是更稳定的 Slug 规则,都让文档编写更加直观、可靠。
使用 COSCLI 快速迁移本地数据到 COS
在 GitHub 或者 Gitee 等其他地方“白嫖“存储难免会遇到无法访问的时候,例如前段时间 jsDelivr 就因为被 DNS 污染导致无法访问、Gitee 公开仓库私有...
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线