摘要:ACME 任务显示续期成功,只能证明新证书已被签发或下载;它不能单独证明每个公网入口都已加载新证书。本文以一次线上故障的排查过程为线索,依次核对签发结果、证书落盘、服务重载、流量入口和多节点状态,帮助运维团队把“续期成功”变成“外网正在使用新证书”。
1. 一次看似成功的续期为何仍演变成线上故障
周一早上,运维人员发现 ACME 续期任务的日志为成功,证书目录中也出现了新的有效期;但外部监控仍提示部分请求返回旧证书。此时最容易犯的错误,是反复执行续期命令。实际上,续期链路已经走到“签发完成”,问题更可能发生在证书从本地文件走向真实 TLS 入口的后半程。
可以把一次更新拆成四个独立事实:CA 是否已签发新证书,客户端是否已保存新文件,目标服务是否重新加载,以及用户请求是否真的进入已更新的节点。任何一项没有闭环,浏览器看到的都可能还是旧证书。排查要沿着这四个事实推进,而不是只盯着 ACME 客户端的退出码。
2. 先确认成功发生在证书生命周期的哪一段
先保存本次任务的证据:新证书的序列号、有效期、SAN 列表、文件路径和生成时间。然后用真实域名发起 TLS 握手,记录外部返回证书的序列号和有效期。只有两组信息能够对应,才能确认外部入口已经使用新证书。
1. 签发层:查看 ACME 客户端日志,确认域名验证完成、订单已签发,并没有停留在“已创建续期任务”或“已提交 CSR”。
2. 落盘层:确认新证书、私钥和中间证书链写入了服务实际引用的路径,而不是写到另一个默认目录、容器临时目录或挂载卷之外。
3. 加载层:核对 Web 服务、代理或网关是否成功重载新配置。需要重载时,不能只替换文件;重载失败也不能仅凭文件时间判断成功。
4. 外部服务层:从公网以域名和 SNI 检查返回的叶子证书。若同一域名多次检测得到不同序列号,优先怀疑存在多个未同步的 TLS 终止点。
3. 按请求实际经过的路径找旧证书
线上用户访问的通常不是证书目录所在的那台机器。一个域名可能先经过 CDN 或 WAF,再进入云负载均衡、API 网关、Ingress、反向代理,最后才到源站。每一层都可能独立持有证书或决定 TLS 在哪里终止。
3.1 新证书写到了错误位置
这是最常见的基础问题。ACME 客户端的默认保存目录与 Nginx、Apache、IIS、容器或负载均衡的引用路径可能不同。应从运行中的服务配置反查证书和私钥路径,再比对该路径中文件的序列号,而不是从客户端目录正向猜测。
3.2 部署钩子没有执行或执行失败
ACME 的签发成功与服务应用新文件是两件事。若依靠部署钩子、发布脚本或配置管理工具,应把“重载命令退出成功”和“端口实际返回新证书”设为两个独立检查点。对集群而言,脚本还需要记录每个节点的执行结果,避免只更新了第一台机器。
3.3 TLS 终止点不在源站
如果 TLS 在 CDN、WAF 或负载均衡处终止,源站的证书已经更新并不意味着用户侧已更新。应在资产表中标记每个业务域名的对外入口、回源入口和备用入口,并按入口逐个验证。尤其要检查测试域名、旧 IP、备用区域和低流量节点。
3.4 多节点中仍有旧配置
同一服务池里的少数节点未重载、容器未滚动更新、共享存储同步延迟,都会造成“有时正常、有时旧证书”。不要只从一台运维跳板机检查;应从外网多次探测,并按节点、区域或出口 IP 保存返回的证书指纹。
4. 将下一次续期设计成可验证的发布流程
ACME 适合自动处理申请、验证、签发与续期,但自动化并不等于无需验收。建议将证书更新纳入发布流程:续期完成后自动读取新序列号,触发受控的部署或重载,再由外部探测确认目标域名的证书指纹已经切换。失败时保留告警和人工接管路径。
• 为每个域名记录证书实际部署位置、TLS 终止层、负责人和验证地址。
• 将“新证书已取得”“服务已加载”“外网已返回”设置为三个可观测状态。
• 集群按批次重载,并在扩批前验证业务请求和 TLS 握手结果。
• 不要把旧证书作为无限期回退方案;只有在未泄露、未误签且仍在有效期内时,才应按变更窗口短暂保留。
FAQ
1. 问题:续期日志显示成功 是否还需要检查线上证书
答案:需要。日志成功通常只证明 ACME 交互已完成;线上是否切换,仍取决于部署路径、服务重载和每个公网入口的状态。应以外部 TLS 握手返回的序列号或指纹作为最终验收依据。
2. 问题:把新证书覆盖旧文件后 为什么 Nginx 仍返回旧证书
答案:运行中的进程可能尚未重新读取文件,也可能实际引用了另一套路径。先从 Nginx 生效配置确认引用位置,再检查安全重载是否完成,最后从外网验证。
3. 问题:CDN 已更新 为什么源站也要检查
答案:若 CDN 与源站之间使用 HTTPS 回源,源站证书仍会影响回源成功与特定路径访问。前台入口更新并不能替代对回源链路的验证。
关于 GlobalSign
GlobalSign 的 ACME 自动化方案可与常见 ACME 客户端配合,用于自动处理证书申请、验证、签发和续期等环节。对于需要把自动化接入现有服务器、代理或运维流程的团队,重点不只是完成 ACME 配置,还应在上线前明确证书文件去向、部署脚本、服务重载和外部验收责任。
资料来源:GlobalSign 中国官网《SSL 证书怎么买 怎么续期 TLS Connect 使用指南》;GlobalSign《证书自动管理环境 ACME》资料页;IETF RFC 8555。