访问https踩到的坑,在http请求下同样的代码不会出现的问题,但是https不行,问题手机三星安卓版本4.3
com.android.volley.NoConnectionError:javax.net.ssl.SSLHandshakeException:com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException:无法验证证书:当前时间:Sun Jan 01 23:02:24 GMT + 08: 00 2012,验证时间:Wed Nov 06 05:36:50 GMT + 08:00 2013
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151)
at com.android.volley.NetworkDispatcher.run( NetworkDispatcher.java:112)
导致:javax.net.ssl.SSLHandshakeException:com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException:无法验证证书:当前时间:Sun Jan 01 23:02:24 GMT + 08 :00 2012,验证时间:Wed Nov 06 05:36:50 GMT + 08:00 2013
在org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:401)
在libcore.net.http.HttpConnection.setupSecureSocket(HttpConnection.java:209)
在libcore.net.http.HttpsURLConnectionImpl $ HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:478)
在libcore.net.http.HttpsURLConnectionImpl $ HttpsEngine.connect (httpEngine.java:240)
在libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
在libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
在libcore.net.http.HttpURLConnectionImpl (HttpsURLConnectionImpl.java:433)。 getResponse(HttpURLConnectionImpl.java:282)
at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:497)
at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
at com.android.volley.toolbox 。HurlStack.performRequest(HurlStack.java:109)
在com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:96)
... 1更多
导致:java.security.cert.CertificateException:com.android.org.bouncycastle .jce.exception.ExtCertPathValidatorException:无法验证证书:当前时间:Sun Jan 01 23:02:24 GMT + 08:00 2012,验证时间:Wed Nov 06 05:36:50 GMT + 08:00 2013
at org。在org.apache.harmony的org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:202)
上的apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:308)
。 xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:608)
在org.apache.harmony.xnet.provider.jsse。NativeCrypto.SSL_do_handshake(Native Method)
在org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:398)
... 11更多
引起的:com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException:无法验证证书:当前时间:Sun Jan 01 23:02:24 GMT + 08:00 2012,验证时间:Wed Nov 06 05:36:50 GMT + 08:00 2013
at com.android.org.bouncycastle.jce .provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1492)
在com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:305)
在java.security.cert.CertPathValidator.validate(CertPathValidator.java :190)
在org.apache.harmony.xnet.provider.jsse.TrustManagerImpl。checkTrusted(TrustManagerImpl.java:295)
... 15更多
导致:java.security.cert.CertificateNotYetValidException:当前时间:Sun Jan 01 23:02:24 GMT + 08:00 2012,验证时间:Wed Nov 06 05:36: 50 GMT + 08:00 2013
在org.apache.harmony.security.provider.cert.X509CertImpl.checkValidity(X509CertImpl.java)
上的org.apache.harmony.security.provider.cert.X509CertImpl.checkValidity(X509CertImpl.java:144) :138)
at com.android.org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1483)
... 18更多00 2013 在org.apache.harmony.security.provider.cert.X509CertImpl.checkValidity(X509CertImpl.java:138)在org.apache.harmony.security.provider.cert.X509CertImpl.checkValidity(X509CertImpl.java:144)在com .android.org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1483)... 18更多00 2013 在org.apache.harmony.security.provider.cert.X509CertImpl.checkValidity(X509CertImpl.java:138)在org.apache.harmony.security.provider.cert.X509CertImpl.checkValidity(X509CertImpl.java:144)在com .android.org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1483)... 18更多
解决办法:
将手机系统时间和网络时间同步就好了
是不是巨坑,因为https是操作和时间戳有关,系统时间和服务器时间不对,导致过期。。。。。