快捷搜索: 王者荣耀 脱发

网络请求发生javax.net.ssl.SSLHandshakeException异常的情况

在使用volley和okhttp的时候,访问https的网站,经常会碰到一个异常就是javax.net.ssl.SSLHandshakeException,大致就是证书相关的异常。发生了好几次。

先是怀疑是不是访问的网站是自签名网站,即没有在CA进行认证。

一般这种情况下会报的异常是这样的:

javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

这个时候就需要在请求时,导入自签名的cer。具体方法可参考:

而我多次遇到的问题却不是上面这个。

我访问的https网站本身是有在CA上认证的,那就不存在拿不到证书的问题,可是还是报了SSLHandshakeException错误,那还是跟证书有点关系的。

看一下具体错误信息:

Could not validate certificate: Certificate expired at Sun Sep 09 20:00:00 GMT+08:00 2018 (compared to Mon Feb 17 14:52:01 GMT+08:00 2020)

信息大致是说,证书在2018年9月9日到期,跟2020年2月17号相比。

然后看了这篇文章,

恍然大悟。马上去看看自己手机里的时间,果然,手机时间设置成了2020年,赶紧把它改回正常的时间,结果一切都正常了,~~正常了~~。

此时的内心无比复杂,遂记录一遭。

经验分享 程序员 微信小程序 职场和发展