目标
在证书到期前完成续订和部署,覆盖负载均衡、CDN、API 网关和内部服务网格等所有端点,并用外部监控提前发现遗漏的续订。
步骤
- 从 DNS 区域、负载均衡监听器、CDN 自定义域名和网关证书中枚举主机名,逐个连接并记录实际提供的主题、签发者、到期时间和证书链,为每个证书指定负责人。
- 用 ACME 客户端在 staging 或 dry-run 模式下测试 DNS-01 或 HTTP-01 挑战,确认通配符和所有域名都能通过。
- 申请新证书,校验名称覆盖、私钥匹配和中间证书链,然后把新证书与私钥写入密钥管理器的新版本。
- 部署到所有端点并平滑重载,确认没有监听器仍在提供旧证书。
- 从至少两个外部网络验证证书链、到期时间和主机名覆盖,并确认 OCSP 或 CRL 检查成功。
- 配置到期前 30 天、14 天和 7 天的告警,并把续订任务加入负责团队的日历。
echo | openssl s_client -servername api.example.com \
-connect api.example.com:443 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates -serial
certbot renew --dry-run --cert-name api.example.com
验证
用 openssl s_client 对每个主机确认主题、签发者、到期日期和证书链;对比 443 端口返回的序列号与密钥管理器中保存的序列号;外部监控显示有效期大于 60 天,且没有证书警告。
回滚
从密钥管理器重新部署上一版本的证书和私钥即可回退,在旧证书仍然有效时完全可逆。吊销是不可逆操作:吊销后旧证书无法恢复,因此只有在私钥泄露时才立即吊销,否则应等新证书完成整个回滚窗口后再吊销。旧证书和私钥保留 30 天,之后再更新证书清单并清理临时挑战记录。