为何仍在有效期内的证书会触发SSL过期错误?
SSL过期报错核心原因分析
1. Postman本地信任根证书缓存问题
这是该场景最高发原因:Let's Encrypt为兼容旧设备,曾由已过期的DST Root CA X3为ISRG Root X1签发过交叉签名证书,该交叉证书有效期到2021年9月30日。
- 旧版Postman内置信任库或本地操作系统信任库中,如果存储了这张过期的交叉签名
ISRG Root X1证书,校验时会优先匹配本地缓存的过期证书,即使服务器返回的是有效期到2024年的自签ISRG Root X1,也会触发过期报错 - 在线证书检测工具的信任库已更新为有效自签根证书,因此不会检测到异常
2. JKS证书链配置冗余
如果JKS密钥库中导入了已过期的DST Root CA X3根证书,且服务端配置为返回包含根证书的完整链,会出现以下情况:
- Postman等客户端校验时会识别到链中的过期
DST Root CA X3,直接抛出过期错误 - 在线检测工具会自动忽略证书链中携带的根证书,直接使用本地信任库中的有效根校验,因此返回配置正常的结果
3. 本地网络存在中间人拦截
如果你所在网络配置了公司代理、开启了抓包工具(如Fiddler、Charles),这类中间设备会替换SSL证书完成流量解密:
- 中间人使用的证书可能已过期,导致Postman拿到的实际是过期证书
- 在线检测工具直接从公网访问服务器,不会经过本地中间人,因此检测结果正常
4. 客户端设备系统时间异常
如果Postman所在电脑的系统时间设置错误,比如晚于2021年10月31日(你的域名证书有效期截止时间),客户端校验时会判定证书已过期。而服务器和在线检测工具的系统时间正常,因此不会出现校验异常
快速排查方案
- 执行
openssl s_client -connect api.verumsoftware.com:443命令,查看服务端实际返回的完整证书链,确认是否包含过期的DST Root CA X3 - 用浏览器直接访问接口地址,查看浏览器校验的证书链有效期,确认是否和服务端配置一致
- 升级Postman到最新版本,或手动将有效期至2024年的
ISRG Root X1自签根证书导入Postman信任库后重试 - 检查本地设备系统时间是否和标准时间一致
内容的提问来源于stack exchange,提问作者Stan van der Bend
相关产品推荐
相关产品推荐

