Postman报错Error:certificate has expired

时间:2024-03-14 11:30:10

最近,postman访问公司域名频繁报这个错,但是用powershell/curl/网页请求确不报。

postman临时解决方案:File-->Setting 把SSL certificate verification 选项关闭。

Postman报错Error:certificate has expired

从Chrome浏览器小锁点进去,证书链泛域名解析是正常的,日期在范围内,从证书链开始查一直查到根都是在日期内的。肯定是哪里出了问题。

postman控制台也看不出什么问题。难道是HTTPS被劫持了?没办法,拿大杀器wireshark抓包试试。

跟踪正常请求和异常请求,都是TLSv1.2的请求,不存在SSL3版本低这个问题。

postman请求在交换证书之后就不请求了,powershell的请求在交换完证书之后继续请求。

那么wireshark不解密能看到服务器证书吗?答案是肯定的。

对比了一下证书,看看有没有什么区别?

找到服务器发送的certificate报文,对比一下。结果是没区别。排除HTTPS劫持。

那么有没有可能是postman校验的问题?

certificate报文是有整个证书链的,每个链可以看到过期日。这么一看,泛域名没过期,链上过期了,过期时间是5月30日。

我只想说,这一套证书链咋设计的,最底层的过期时间还能大于上一级链上的时间。。。。。。。。。不能大于的话瞎签发啥呀。

Postman报错Error:certificate has expired

搜索新闻。

Postman报错Error:certificate has expired

新闻说Sectigo的旧根证书过期了,用新的根证书签发一遍就OK了。

用上新证书之后重新wireshark抓了个包,日期更新了,不过新闻里说的 旧根为AddTrust External CA Root,新根为USERTrust RSA Certification Authority。这点我有点怀疑,抓包的结果看服务器证书都是四层

泛域名->Sectigo RSA Domain Validation Secure Server CA-->USERTrust RSA Certification Authority-->AddTrust External CA Root

更新证书前和更新证书后都是这四层。只不过日期更新了。可能我没理解好交叉授权这个事吧。