我面临的问题,当我尝试连接到我的API服务器与错误的设备日期的请求抛出互联网连接错误与以下例外:
java.security.cert.CertPathValidatorException:响应不可靠:其有效性间隔已过期
java.security.cert.CertPathValidatorException:无法确定吊销状态
但是这种行为并不发生在具有相同日期的所有设备中,而是在当前日期前后几乎一天的错误日期范围内也起作用。
这个问题总是发生在Android 8.0及以上的设备上,但不会发生在Android 7.0上.我注意到这个问题发生在错误的日期,但我不明白这是为什么.所以我想了解发生了什么和原因,也是解决这个问题的最佳实践.
2条答案
按热度按时间yzuktlbb1#
在我的设备上设置正确的系统时间,它就可以工作了。
转到
Settings
>System
>Date & Time
>将其设置为Automatic date & time
6ljaweal2#
那些认为证书不可靠的人实际上工作正常。
除了安装一个有效期与设备日期相匹配的服务器端证书外,没有什么可解决的。禁用证书验证不是一个解决方案,但它很愚蠢-因为它会允许过期和吊销的证书,破坏CA。例如:如果有人得到了私钥,你就没有办法撤销证书,在接受吊销的证书时,这在专用网络上可能是可以接受的,但在互联网上,你会把自己射到脚上。
请参阅Browsers and Certificate Validation,段落“证书路径验证算法”。
Let's Encrypt免费提供SSL证书,有效期为3个月。