java.security.cert.CertPathValidatorException:找不到證書路徑的信任錨。Android 2.3
看來證書的頒發者不在2.3設備的信任存儲中。
查看GoDaddy證書的根ca和中間ca,并檢查證書是否在2.3設備上存在。
有關獲取2.3證書列表的信息,請參見http://www.andreabaccega.com/blog/2010/09/23/android-root-certification-authorities-list/。
當只有根CA可用時,請確保您的Web服務器還根據請求提供中間證書。
解決方法在我的服務器(生產服務器)中,我具有goDaddyssl證書。我有iOS和Android應用程序都與服務器連接,iOS都沒有問題連接,Android版本為4.一切都很好,但是設備版本為2.3。我總是收到SSLHandshakeException。
我在Android開發人員頁面(https://developer.android.com/training/articles/security-ssl.html)上確實很喜歡。
然后,我看到了這個線程在談論擴展密鑰用法,但是在調試時,我得到了以下信息:
[2]: OID: 2.5.29.37,Critical: falseExtended Key Usage: [ '1.3.6.1.5.5.7.3.1','1.3.6.1.5.5.7.3.2' ]
因此,我猜該證書不是“強制”擴展密鑰用法。
此外,在此線程上還有其他一些可能的原因,例如日期/時間完全錯誤,這些原因都不存在。
考慮到這一點,我現在不知道問題可能在哪里。
有什么建議?
編輯: 下面的StackTrace:
08-04 16:54:30.139: W/System.err(4832): Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:161)08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:664)08-04 16:54:30.149: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)08-04 16:54:30.159: W/System.err(4832): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)
相關文章:
1. apache web server 怎么限制某一個網站對服務器資源的占用?2. docker網絡端口映射,沒有方便點的操作方法么?3. docker start -a dockername 老是卡住,什么情況?4. java中返回一個對象,和輸出對像的值,意義在哪兒5. css3 - 純css實現點擊特效6. mysql - 在不允許改動數據表的情況下,如何優化以varchar格式存儲的時間的比較?7. 安全性測試 - nodejs中如何防mySQL注入8. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?9. javascript - 關于apply()與call()的問題10. html5 - 請問現在主流的前端自動化構建工具是哪個?
