证书过期排障
核对本地与实际服务证书、SNI 和系统时钟,验证更新后的生效情况。
适用范围与前提
HTTPS/TLS 证书时间问题;时间正常不代表信任验证通过。
- 替换 example.com 与 /path/to/cert.pem;只连接获授权的目标。
- 保留旧证书部署记录,私钥不得上传或放入排障报告。
命令仅供手动复制到获授权的环境执行。站点不会连接服务器;涉及网络的诊断可能产生请求或登录审计记录。
1. 先核对系统时钟
date -u
timedatectl status预期现象:检查 UTC 时间、时区与同步状态。时钟错误可能造成尚未生效或已过期的假象。
- 时钟显著错误 → 修复建议(需人工确认)
- 时钟正常 → 查看本地证书日期与标识
2. 查看本地证书日期与标识
openssl x509 -in /path/to/cert.pem -noout -subject -issuer -dates -fingerprint -sha256预期现象:核对 notBefore/notAfter 和指纹。证书 bundle 默认只显示第一张,不能据此确认中间证书全部正常。
- 本地证书已过期 → 修复建议(需人工确认)
- 本地有效或已更新 → 携带 SNI 查看实际服务返回证书
3. 携带 SNI 查看实际服务返回证书
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null预期现象:该命令会发起网络连接。对照叶子证书和中间证书有效期、指纹;握手成功不等于域名与信任链验证成功。若服务无响应,请手动中止。
- 仍返回旧证书或不同节点不一致 → 修复建议(需人工确认)
- 日期正常但客户端仍失败 → 升级求助前收集
修复建议(需人工确认)
- 时钟修复应由管理员通过既有时间同步方案处理;时间跳变可能影响业务,不手工随意改时钟。
- 按证书颁发与更新流程换证,备份配置并核对证书/密钥匹配和完整链;不要分享私钥。
- 人工确认后检查配置并安排平滑加载,同时更新负载均衡/CDN/多节点上所有实际终止 TLS 的位置。
验证恢复
- 再次核对每个服务入口返回的证书及中间证书,确认日期和新指纹。
- 使用正常启用信任校验的客户端验证目标域名;不能用跳过验证作为恢复标准。
升级求助前收集
- 故障时间、客户端错误、SNI、证书公开指纹/日期及 TLS 终止节点;不包含私钥。