使用 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,实现续期后同步更新腾讯云服务。
文章总结:
本文提供了一套完整的泛域名证书自动化管理方案,从申请、安装到云服务同步,适合管理多子域且使用腾讯云服务的用户,能有效降低证书手动维护成本。
鲁飞
鲁飞
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
鲁飞的其他文章
HMAC 签名编码的坑:Go 和 PHP 的不同处理方式
本文将以 Go 和 PHP 为例,探讨为什么直接对 HMAC 签名进行 Base64 编码与先转换为 16 进制字符串再编码的结果不同。
GitHub Actions 真香系列之scp和ssh
虽然现在有 k8s 作为部署服务,但也有一部分的业务还是使用传统的方式,在服务器上使用 LNMP 进行部署 Web 站点。
MySQL 字符集与大小写敏感性解析
在 MySQL 数据库中,UTF-8 及其变体是最常用的字符集。
PHPMQTT v1.4.1 版本发布,新增协议调试工具
PHPMQTT v1.4.1 版本发布,在此版本中主要是新增了一个协议调试工具。
解决 Laravel 单元测试报错:A facade root has not been set
建议直接使用命令行操作相关操作
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线