2021 年 2 月,微软 Teams 曾因一张身份验证证书过期,全球大量用户数小时内无法登录。这类事故的原因往往简单到乏味——到期没人续;代价却包括业务停摆、用户投诉和故障复盘。
更值得开发者关注的是趋势:CA/Browser 论坛已通过 ballot SC-081,SSL/TLS 证书最长有效期将从现在的 398 天,缩短到 2026 年 3 月的 200 天、2027 年 3 月的 100 天,2029 年降到 47 天。"一年续一次"将变成"一个半月续一次",靠日历提醒和人情盯防的模式会系统性失效。
一、证书有效期缩短时间线
| 时间 | 最长有效期 |
|---|---|
| 当前 | 398 天 |
| 2026 年 3 月 | 200 天 |
| 2027 年 3 月 | 100 天 |
| 2029 年 | 47 天 |
对运维和开发的直接影响有两个:证书轮换频率提高约 8 倍,续期操作从"年度任务"变成"月度例行";续期失败的影响面同步放大,任何一环手工操作出错都是实际故障。

二、"日历提醒"为什么会失效
多数团队的证书管理停留在"到期前设个提醒",失效点集中在三处:
注册邮箱失效。 证书注册人用的是离职员工的企业邮箱,续期通知发进去,操作权限却在另一个人手里——通知和动作之间断了链。
部署节点遗漏。 一张证书可能同时部署在源站、负载均衡、CDN 和 API 网关上,更新时漏掉任何一个节点,就会出现"监控显示正常、部分用户报错"的割裂。
域名验证阻塞。 CA 签发前要验证域名控制权,邮件验证需要有人收信点信,文件验证需要部署 token——这些人工步骤卡在续期链路上,自动续期就跑不完。
三、自动续期:ACME 协议与实战
自动续期的标准答案是 ACME 协议(RFC 8555),Let's Encrypt 及兼容 ACME 的私有 CA 都支持。核心流程是:客户端证明域名控制权 → CA 签发短周期证书 → 定时任务在到期前完成更换,全程无人值守。
以 certbot 为例,先做一次干跑验证链路是否通畅:
certbot renew --dry-run
确认无误后加入定时任务,建议在证书剩余寿命 1/3 时触发续期,留足失败重试窗口:
0 3 */15 * * certbot renew --quiet && systemctl reload nginx
检查任意证书的剩余有效期,一行命令即可:
openssl x509 -in /path/to/cert.pem -noout -dates

对国密等特殊场景,可评估私有 CA 的自动签发能力——以安当 CA 为代表的证书认证系统,提供的正是证书签发、密钥托管与状态发布这类底层能力,适合内网与国密改造场景。
四、监控:台账 + 入口探测双保险
自动续期会失败(网络、配额、验证方式变更),监控不能省。两个层次:
台账层。 用 CMDB 或专用工具登记全量证书:域名、CA、到期日、部署位置、负责人、续期方式。台账的作用是"家底清楚",没有台账就不知道监控覆盖全了没有。
入口探测层。 对核心域名定时发起 TLS 握手,把剩余有效期作为监控指标,低于 14 天直接告警到值班通道。探测点必须与业务入口一致,否则会出现"监控看的心安理得,用户端已经告警"的错位。
五、国密改造的两个额外要点
涉及国密改造的业务,还要多考虑两点:
双证书部署。 国密证书与国际算法证书同时提供,服务器按客户端协商结果选择算法链。两类证书的到期日不同,必须全部纳入同一套监控,不能只管一类。
信任链管理。 国密根证书需要预埋到客户端信任库,灰度切换期内证书轮换要保证信任链完整,否则会出现"部分用户正常、部分用户不安全"的割裂感。
六、运维自查清单
- 能否 10 分钟内导出全量证书清单(含第三方代管)?
- 证书的注册邮箱和续费通知,是否发得到人?
- 核心域名是否有独立的入口探测,而不只是台账记录?
- 续期任务是否做过 dry-run,失败时有告警吗?
证书过期是典型的"低成本可预防、高代价才被发现"故障。你的团队现在靠日历提醒还是自动化续期?评论区聊聊。
参考资料
- RFC 8555(Automatic Certificate Management Environment,ACME 协议)
- CA/Browser Forum Ballot SC-081(SSL/TLS 证书有效期缩减路线图)