S3中的SSLHandShakeException和具有Android 4.x版本的设备

S3中的SSLHandShakeException和具有Android 4.x版本的设备,android,https,ssl-certificate,httpsurlconnection,Android,Https,Ssl Certificate,Httpsurlconnection,我正在使用SSL证书和HTTPS连接。我可以使用三星S4登录,而不是华为和三星S3。我认为这与安卓4.x有关,在安卓4.x上你不能登录。登录似乎在安卓5.x上工作。谁能告诉我哪一个可能是问题? 以下是例外情况: ? ca=CN=*.route2school.be, OU=Domain Control Validated ? ca=CN=*.route2school.be, OU=Domain Control Validated ? GC_CONCURRENT freed 424K, 9% fre

我正在使用SSL证书和HTTPS连接。我可以使用三星S4登录,而不是华为和三星S3。我认为这与安卓4.x有关,在安卓4.x上你不能登录。登录似乎在安卓5.x上工作。谁能告诉我哪一个可能是问题? 以下是例外情况:

? ca=CN=*.route2school.be, OU=Domain Control Validated
? ca=CN=*.route2school.be, OU=Domain Control Validated
? GC_CONCURRENT freed 424K, 9% free 13463K/14663K, paused 4ms+11ms, total 67ms
? javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
? at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:374)
? at libcore.net.http.HttpConnection.setupSecureSocket(HttpConnection.java:209)
? at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:478)
? at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:433)
? at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
? at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
? at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
? at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
? at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:271)
? at com.splunk.mint.network.http.MonitorableHttpsURLConnection.getInputStream(MonitorableHttpsURLConnection.java:73)
? at com.dhcollator.routetoschool.network.request.GetRequest.doRequest(GetRequest.java:116)
? at com.dhcollator.routetoschool.network.NetworkThread.doInBackground(NetworkThread.java:75)
? at com.dhcollator.routetoschool.network.NetworkThread.doInBackground(NetworkThread.java:13)
? at android.os.AsyncTask$2.call(AsyncTask.java:287)
? at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
? at java.util.concurrent.FutureTask.run(FutureTask.java:137)
? at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
? at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
? at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
? at java.lang.Thread.run(Thread.java:856)
? Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
? at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:192)
? at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:163)
? at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:573)
? at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
? at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:371)
? ... 19 more
? Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
? ... 24 more
01-25 21:22:05.695    7261-9288/com.dhcollator.routetoschool E/SERVER-RESPONSE? null

请确保日期和时间正确无误。
这就是我在同一台设备(三星S3)上遇到的问题

找不到证书路径的错误
信任锚点
表示服务器使用的证书是由那些旧设备不信任的根CA颁发的

如果你想让它工作,你必须在你的应用程序中包括根证书,并设置为受信任的根证书


遵循谷歌文档. 尤其是在您的情况下,“未知证书颁发机构”一节是相关的。

我只在1台设备上有此问题,其他工作正常。为什么?@Tony比较这些设备。运行的操作系统版本不同,制造商不同?安卓安全补丁级别日期不同?好吧,在xioami和pixel上运行良好,在安卓6.0的Motorola上运行良好。但除了这款搭载安卓6.0的三星a3外,我什么都不知道+