← 中文资源

简体中文版本

无停机轮换 TLS 证书

盘点证书、签发替代证书、重叠部署、验证服务链与有效期,并在到期前自动化续期。

阅读英文原文

先盘点,再到期

证书事故通常是盘点失败。团队知道公网证书,却忘了内部服务、Webhook 端点或固定证书的移动客户端。从主机名和负责人清单开始,而不是从某台服务器上的文件清单开始。记录签发者、密钥类型、到期时间和续期自动化方式。

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

既要从外网检查,也要从内网检查。内网探针可能信任公共客户端不信任的私有 CA。

先重叠,再排空

在服务器支持时同时安装新旧证书,然后优雅重载。已有 keep-alive 连接可能继续使用旧证书直到关闭,这在重叠期内可以接受。不要一次性重启所有实例。如果是密钥泄露,跳过重叠并立即撤销旧密钥。

自动化并演练

ACME 客户端可以自动续期,但没有监控的自动化只会静默失败。在 CI 或计划任务中运行 certbot renew --dry-run,对续期失败告警,并把剩余天数作为指标。通过企业 CA 签发的证书,要么自动化申请与部署,要么记录手工步骤和负责人。

验证证书链

证书未过期仍可能因缺少中间证书、SAN 缺失或旧客户端不支持密钥类型而失败。验证完整链和主机名,并测试代表性客户端。在新链确认前保留旧证书以便回滚。