解决Volley的javax.net.ssl.SSLHandshakeException异常

问题复现步骤

在我开发的应用中,获取数据的协议是通过https.因为我们这边的证书都是经过CA认证的,所以不需要对Volley进行额外的自签名证书配置.

但是,今天测试同学突然找到我,说网络请求不通,API接口获取不到数据了.吓得我赶紧用AS build一个debug版本,安装在自己的机器上是ok的,但是去测试同学那边莫名其妙的就跪了.幸好是debug版本,从log里我发现了下面的异常信息:

com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate not valid until Thu Oct 31 08:00:00 GMT+08:00 2013 (compared to Sun Jan 01 08:31:09 GMT+08:00 2012)

问题解决

开始我只注意到SSLHandshakeException这个关键字,我想我们这边是CA认证的证书啊,怎么还会有证书认证问题呢.后来静下心,仔细看了全部的出错信息,发现:

Certificate not valid until Thu Oct 31 08:00:00 GMT+08:00 2013 (compared to Sun Jan 01 08:31:09 GMT+08:00 2012)

提示证书2013年10月31号就过期了,后来Google了一下,发现果然有人说是由于手机本地的时间设置错误导致的问题,我一看测试同学手机,时间还是2012年,难怪提示证书出错.

赶紧让测试同学同步了手机时间,哈哈,接口又再次畅通了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章