首页/安全/加密与证书速查/证书上线检查清单

证书上线检查清单

证书轮换按固定清单执行可减少人为疏漏:材料校验、配置检查、灰度 reload、多节点复核、监控与记录更新,缺一不可。

加密与证书速查安全更新于 2026-10-13

为什么要清单化

证书轮换是最容易出人为事故的例行操作之一:材料靠手工整理、要下发到多台机器、还要 reload 服务。把它固化成清单能明显降低疏漏率。清单覆盖五件事:材料校验(证书与私钥是否配套、链是否完整)、配置检查、灰度发布并重载、多节点复核、监控与记录更新。

清单化命令

清单化命令
# 1) 材料校验:链能否验证通过
openssl verify -untrusted chain.pem leaf.pem
# 1b) 证书与私钥是否同一密钥对:两处公钥指纹必须一致
openssl x509 -in leaf.pem -noout -pubkey | openssl sha256
openssl pkey -in key.pem -pubout | openssl sha256
# 2) 配置检查:语法不过不上线
nginx -t
# 3) 发布与复核:reload 后逐台确认实际生效的证书
for h in node1 node2; do echo | openssl s_client -connect $h:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -issuer; done

清单要素

回滚预案保留旧证书与配置备份,明确回滚命令与验证方式
记录项序列号、指纹、生效时间、操作人、验证结果
权限与备份私钥权限、备份加密与访问审计一并纳入清单
灰度顺序先单节点、再小流量、最后全量,全程看错误日志
通知涉及对外接口或客户端时提前告知相关方

上线前后检查项

阶段检查项通过标准
上线前证书与私钥配套两处公钥指纹一致
上线前证书链完整verify 返回 OK
上线前配置语法正确nginx -t 通过
上线中灰度重载单节点先切换并观察握手是否正常
上线后多节点复核各节点返回的序列号与生效时间一致
上线后监控与记录到期告警在架,操作记录归档
reload 之后必须实际验证生效结果:配置写对了但服务仍加载旧证书的情况并不少见,验证要以客户端实际拿到的证书为准。
最容易被漏掉的是回滚:改前把旧证书与旧配置一起备份,并明确写下回滚命令与验证方式,出问题时才不用现场拼命令。
多节点环境要防止半更新:一部分节点换了新证书、一部分还是旧证书时,用户侧会看到间歇性失败。统一的发布时间窗加上逐台复核可以避免这类问题。

易错点

  • 直接覆盖旧文件且无备份,出错后无法快速回退
  • 只在一台机器验证后全量发布,半更新状态带来间歇性失败
  • 忘记 reload,服务继续加载内存里的旧证书
  • 证书与私钥不配套就上线,配置检查能过但握手必然失败
  • 私钥权限过宽或备份未加密,等于把密钥交出去

数据来源与参考

  • OpenSSL 官方文档(verify / s_client)
  • nginx 官方文档(-s reload)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌