首页/安全/加密与证书速查/中间证书过期排查

中间证书过期排查

叶证书未到期但访问报错时,中间证书过期是常见原因:用 -showcerts 拉取完整链,逐张查看 notBefore/notAfter 即可确认断点。

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

中间证书过期排查

叶证书尚未到期但访问报错时,中间证书过期是常见原因。用抓链选项拉取完整链,按标记拆分成单张证书,逐张查看生效时间与失效时间即可确认断点。中间证书的有效期往往比叶证书短,因此巡检必须把链上每张证书都纳入到期监控,而不是只盯着站点证书。

基本信息

抓链用抓链选项保存完整链输出
拆分按起止标记拆成单张证书文件
核对逐张查看主体、签发者与有效期
结论任一中间证书过期都会导致链校验失败

典型使用场景

  • 排错:叶证书未到期但客户端报链错误
  • 巡检:把链上所有证书纳入到期监控
  • 更新中间证书后验证替换是否完整
  • 多环境对比:确认各环境链内容一致
  • 应急:定位具体是哪一张证书过期

拆分并逐张检查

拆分并逐张检查
echo | openssl s_client -connect example.com:443 -servername example.com -showcerts 2>/dev/null > chain.pem
awk 'BEGIN{n=0} /BEGIN CERTIFICATE/{n++} {print > ("c" n ".pem")}' chain.pem
for f in c*.pem; do echo "== $f"; openssl x509 -in $f -noout -subject -dates; done

排查要点

项目正常异常
主体与签发者首张为站点证书首张不是站点证书说明顺序错误
有效期全部在有效期内任一过期即校验失败
链长度与预期层级一致缺层说明链文件不全
中间证书有效期往往比叶证书短;只监控叶证书到期时间会漏掉更早到期的中间证书,造成看似突然的全网故障。

落地建议

  • 监控覆盖链上每一张证书
  • 更换中间证书时同步更新所有下游环境
  • 把链检查编入部署后验证步骤
  • 记录链文件的来源与生成方式
不同客户端对链缺失的容忍度不同,有的会尝试自行补全,因此同一份链在不同环境下的表现可能不一致,排错时要分别验证。

巡检清单

  • 抓取每个对外站点的完整链
  • 逐张记录主体与失效时间
  • 把最晚到期的证书时间与提前量对比
  • 发现临期证书时提前安排替换与灰度
抓链时要指定目标名称,否则可能拿到默认站点的证书链;这一步漏掉会让整份检查结果指向错误的站点。

易错点

  • 只监控叶证书到期时间,忽略链上中间证书
  • 更换中间证书时遗漏部分下游环境
  • 只看叶证书有效期就认为整条链有效
  • 链顺序错误与中间证书过期现象相似,未逐张核对就下结论
  • 把中间证书与根证书混为一谈,替换了错误的层级
  • 抓链时未指定目标名称,核对的是默认站点的链

数据来源与参考

  • OpenSSL 官方文档(x509 / s_client)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌