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. macos - mac下docker如何設置代理2. redis與mysql一致性問題3. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?4. css - 求推薦適用于vue2的框架 像bootstrap這種類型的5. android - coordinatorLayout嵌套recyclerview6. Laravel5.4電商實戰視頻教程資料7. 想練支付寶對接和微信支付對接開發(Java),好像個人不可以,怎么弄個企業的8. Mac環境下QT編譯MySQL驅動屢次失敗?如何?9. javascript - 微信支付:H5調起支付API,直接說支付失敗10. javascript - [多圖預警]reactjs點擊某表格編輯內容,跳轉傳值this.context.router.params.id時id報錯未定義
