为什么证书处于有效期内 Postman调用API仍报SSL证书过期错误
报错触发的常见原因
- 终端证书本身已过期:你提到的证书
validTo字段值为Dec 15 02:30:21 2021 GMT,若当前实际时间晚于该时间,证书本身已经超出有效期,你判断证书仍有效属于时间误判,这是CERT_HAS_EXPIRED报错最常见的触发原因。 - 本地时间校验异常:Postman校验证书有效期时会读取自身运行环境的时间,如果本地系统时间被错误修改为晚于证书有效期、或者Postman运行时的时间缓存异常,即使实际时间在证书有效期内,也会误判证书过期。
- 证书链存在过期的中间/根证书:你看到的
validTo仅为终端服务证书的有效期,若API服务端返回的完整证书链中,捆绑的中间证书或根证书已过期,Postman的SSL校验逻辑会直接抛出证书过期错误,不会单独标注是证书链的上层证书失效。比较典型的场景是服务端仍捆绑了2021年9月过期的Let's Encrypt DST Root CA X3根证书,即使终端证书仍在有效期也会触发报错。 - Postman自定义CA证书过期:如果你在Postman中手动配置了自定义根证书用于SSL校验,若该自定义证书已过期,即使目标站点的证书本身正常,也会触发全局的证书过期校验失败。
- TLS版本兼容异常:部分老旧服务端仅支持TLS 1.0/1.1,如果Postman配置的最低TLS版本高于服务端支持的版本,少数场景下会抛出不准确的证书过期错误,而非版本不兼容提示。
快速定位方案
可执行openssl命令拉取站点完整证书链,逐层级确认有效期即可定位问题:
openssl s_client -showcerts -connect <API域名>:<端口> < /dev/null
执行后查看返回的所有证书的Not After字段,即可确认是哪一层证书存在过期问题。
错误截图参考:
内容的提问来源于stack exchange,提问作者Roushan Kumar
相关产品推荐
相关产品推荐

