文章

证书寿命要缩到 47 天:现在该把续签这件事自动化掉

静水流深 昨天 20:13 · 1,283 字 · 约 4 分钟 · 13 次阅读
我发布了文章:《证书寿命要缩到 47 天:现在该把续签这件事自动化掉》

先说结论

如果你已经在用 ACME 客户端自动续签,这篇你只需要看最后那几步检查;如果你的流程还是“收到提醒 → 后台下载证书 → 上传覆盖 → reload nginx”,那这套玩法从 2026 年就开始漏风,到 2029 年会彻底跑不动。

时间表已经定了

CA/B Forum 已经投票通过(25 票赞成、5 票弃权)逐步压缩公开 TLS 证书的最长有效期:

  • 2026 年 3 月 15 日起:新签发证书最长 200 天,域名验证(DCV)复用期同样 200 天
  • 2027 年 3 月 15 日起:降到 100 天
  • 2029 年 3 月 15 日起:降到 47 天,DCV 复用期缩到 10 天

执行上各家略有提前:Sectigo 从 2026 年 3 月 15 日起按 200 天签发,DigiCert 更早,2026 年 2 月 24 日起就按 199 天执行。软件签名这边也在收紧——代码签名证书从 2026 年 3 月 1 日起,最长有效期从约 3 年降到 460 天。

免费证书这一侧其实更短

Let's Encrypt 的默认证书是 90 天,官方建议 60 天续一次,另外还有 6 天的短期证书可选;通配符证书必须用 DNS-01 挑战签发;它只发 DV 证书,不做 OV/EV,也不提供人工支持,只有文档和社区论坛。

也就是说,90 天已经比 200 天、100 天都短。习惯自动化的人在这轮变化里是安全的。真正被甩下的是两类人:手动续签的人,以及买了“一年期证书”当保险、以为一年不用管的人。

风险清单

  • 续签靠人记:47 天一轮,一年 8 到 12 次,忘一次就是全站“不安全”
  • 证书散落在 CDN、对象存储、邮件服务、内网面板里,根本盘不清
  • 域名验证邮箱(admin@、webmaster@ 之类)没人看
  • DNS API 凭据过期,或者权限给得太大
  • 没有任何到期告警,只等浏览器报错才发现
  • 付费多年期证书不等于多年不管:证书本身仍按新规签发,要按年重签

现在就该做的六步

  1. 盘家底。把每个域名、子域、CDN、邮件、内网服务用到的证书列一张表,记签发者和到期日。命令行快速看一张:
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -issuer -dates
  1. 全部切到 ACME。Nginx、Apache 用 certbot,装完通常自带定时续签(systemd timer 或 cron);通配符走 DNS-01,DNS 凭据只给改写 TXT 记录的最小权限。
  1. 缩短续签间隔。90 天证书按 60 天续,改完用 certbot renew --dry-run 跑一遍,确认流程真的通。
  1. 加到期告警。别只靠注册商邮件,用证书透明度监控或者自己写个脚本每天检查剩余天数。
  1. 给“自动化不了的地方”单独登记。内网设备、老 Windows、不开放 80 端口的服务,列出负责人和提醒时间,并预留域名验证的操作时间。
  1. 如果你还签软件,把代码签名证书按 460 天重排预算和换证流程。

一句判断

这不是一个安全问题,是一个运维频次问题。与其 2029 年每 47 天救一次火,不如这个下午把自动续签跑通:一次性投入,之后这几年它自己转。

登录 后参与评论

还没有人评论,来抢沙发