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. javascript - vuejs+elementui 購物車價格計算,點擊加減號修改數量總價都不會改變,但是計算執行了2. css右浮動字的順序顛倒了3. php - 請問大批量數據處理,如何分割?4. MySQL主鍵沖突時的更新操作和替換操作在功能上有什么差別(如圖)5. javascript - 我是做web前端的,公司最近有一個項目關于數據統計的!6. ios - 類似微博首頁,一張圖的時候是如何確定圖大小的?7. javascript - 如何使用loadash對[object,object,object]形式的數組進行比較8. javascript - vue過渡效果 css過渡 類名的先后順序9. html5和Flash對抗是什么情況?10. 數據庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實在是找不到哪里的問題了。
