症状
TLS 校验以 certificate has expired 或 is not yet valid 失败。证书可能确实过了有效期,链中的中间证书可能已过期,或客户端时钟错误使有效证书看似无效。最后一种在容器与刚启动的虚拟机中很常见,因为时间同步尚未跟上。
诊断
用 openssl 读取有效期;检查客户端时间;检查整条链而非仅叶子证书。
openssl s_client -connect host:443 -servername host 2>/dev/null | openssl x509 -noout -dates
根因
链中某证书相对服务器时间落在有效期窗口之外,原因是已过期、尚未生效,或客户端时钟偏差。
修复
续期并部署过期证书;修正两端时钟同步;校验整条链而非仅叶子。把续期自动化并加监控,因为人工续期容易遗忘。
验证
重新连接确认校验通过,并确认证书有效期在当前时间两侧正确覆盖,服务器与客户端都如此。有效期正确且握手成功即证明修复。
常见陷阱
为绕过过期错误而关闭校验会引入中间人风险;应修复证书与时钟。