API 请求有效期在某些设备上已过时的问题

ahm*_*maa 6 ssl android

当我尝试使用错误的设备日期连接到 API 服务器时,我遇到问题,请求会引发互联网连接错误,但存在以下例外情况:

java.security.cert.CertPathValidatorException:响应不可靠:其有效性间隔已过时
java.security.cert.CertPathValidatorException:无法确定吊销状态

但这种行为并非在具有相同日期的所有设备中发生,但它也适用于当前日期前后几乎一天的错误日期范围。

此问题始终发生在 Android 8.0 及更高版本的设备上,但不会发生在 Android 7.0 上。我注意到这个问题是根据错误的日期发生的,但我无法理解其原因。所以我想了解发生了什么及其原因,以及解决此问题的最佳实践。

Bha*_*ani 7

在我的设备上设置正确的系统时间并且它可以工作。

转到Settings> System> Date & Time> 将其设置为Automatic date & time


Mar*_*ler 0

那些认为证书不可靠的人实际上工作正常。

除了安装具有与设备日期匹配的有效期的服务器端证书之外,没有什么可解决的。禁用证书验证不是一个解决方案,但它很愚蠢 - 因为它会允许过期和撤销的证书,从而破坏 CA。例如:如果有人掌握了私钥,那么在接受吊销的证书时,您将无法吊销该证书。这在专用网络上可能是可以接受的,但在互联网上,你就会搬起石头砸自己的脚。

只需参见浏览器和证书验证,“证书路径验证算法”段落。

Let 's Encrypt免费提供 SSL 证书,有效期为 3 个月。