一条能落地的证书运维规范:签发后 30 天内完成部署并下线旧证书

证书躺在工单系统里没部署、旧证书到期前一天才有人想起,是最常见的两类线上事故源头。这篇讲一条简单的内部规范——签发后 30 天内完成部署并下线旧证书——以及它在哪些场景不适用。

本文目录
一条能落地的证书运维规范:签发后 30 天内完成部署并下线旧证书

很多证书事故不是技术问题,而是流程缺口。典型现场是这样:运维提前 40 天续好了证书,文件放在某个目录里,想着"下周上线"。然后下周变成了下下周,直到某个深夜,线上告警响了——旧的已过期,新的还躺在那儿,两边差着一次部署。

针对这类问题,我见过比较好使的一条内部规范是:证书签发完成后 30 天内必须完成部署并下线旧证书。它简单、可检查、责任清楚,比"及时更新证书"这种口号有效得多。

这条规范具体管什么

拆开是三件事:

  1. 签发和部署是同一个工单。谁申请续签,谁负责把它推到线上,不允许"签发即完成"。
  2. 30 天是部署窗口,不是提醒窗口。Let's Encrypt 证书有效期 90 天,在剩余约 30 天时完成续签和部署,意味着部署动作发生时新证书还有完整的使用期。如果 30 天到了还没部署,工单直接升级,而不是再发一条提醒邮件。
  3. 部署后明确下线旧证书。很多人忘了这一步,结果负载均衡器上一半实例用新证书、一半用旧证书,客户端报错的复现概率变成玄学。下线动作包括:移除旧证书文件、重载服务、确认所有入口返回的都是新证书链(用 openssl s_client -connect 域名:443 -servername 域名 逐个入口抽查)。

配合两个习惯会顺很多:重载而不是重启(Nginx 的 reload 足够加载新证书),以及部署后用浏览器和命令行各验一次,别只信监控探针——有些探针只查 TCP 通不通。

一条能落地的证书运维规范:签发后 30 天内完成部署并下线旧证书:DNS ownership verification using a delegated CNAME, shown as a precise handoff between two controlled zones
一条能落地的证书运维规范:签发后 30 天内完成部署并下线旧证书:DNS ownership verification using a delegated CNAME, shown as a precise handoff between two controlled zones查看原图

在 CertbotX 中实践

手动跑这条规范最大的负担在"谁记得"。CertbotX 里可以把 ACME 自动签发和到期前重新签发配好,再把部署目标设为 Agent、EdgeOne 或 CDN,签发完成后自动推送,工单里最容易漏的那一步就没了。泛域名证书走 DNS-01,如果主 DNS 不方便开 API 权限,可以把 _acme-challenge 子域 CNAME 委托到一个专门用于验证的 DNS 区。每次部署都会留记录,审计时能直接回答"这张证书什么时候、由谁、部署到了哪里",这正是"30 天窗口"可检查的前提。

适用边界:这条规范管不到的地方

先说清楚它不适合谁,比吹嘘它多有用更诚实。

短有效期证书:如果有人已经在用 7 天有效期的内部证书,"30 天部署窗口"这个概念本身就不成立,那条路线下部署必须全自动,规范应该是"任何环节人工介入视为故障"。

客户端证书和内部 mTLS:这类证书往往嵌在设备固件、IoT 终端或第三方系统里,部署周期以月甚至以年计,30 天下线旧证书不现实。这里需要的是双证书并行信任期,而不是快速下线。

一条能落地的证书运维规范:签发后 30 天内完成部署并下线旧证书:an ACME request being validated at separate stations and turned into a new deployable artifact while private key material remains at its origin
一条能落地的证书运维规范:签发后 30 天内完成部署并下线旧证书:an ACME request being validated at separate stations and turned into a new deployable artifact while private key material remains at its origin查看原图

证书被吊销的紧急情况:私钥泄露时不是"30 天内",是"尽快",而且顺序反过来——先吊销、先切换,再补流程。这条规范管的是常规轮换,不是事故响应。

你无法控制部署的证书:比如证书在客户自己的设备上,你只能交付文件。这时规范该约束的是交付和确认,而不是部署时限。

一个小坑

规范里写"30 天"的时候,记得对齐续签触发点。如果自动化在到期前 30 天才触发续签,签发和部署窗口就重叠了,出问题时没有缓冲。更稳的做法是到期前 45 天左右触发续签,签发成功后留 30 天部署窗口,最后还有 15 天兜底。缓冲这东西,平时看着浪费,出事那天就是全部。

另外,规范落地前先盘点一遍现有证书的在哪、谁负责。不少团队的证书台账和实际线上情况对不上,规范写得再漂亮,管不到一张没人知道的证书。

参考核验

← 返回资讯中心