java.security.cert.CertPathValidatorException:找不到證書路徑的信任錨。Android 2.3
看來證書的頒發(fā)者不在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開發(fā)人員頁面(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. docker-machine添加一個已有的docker主機問題2. docker綁定了nginx端口 外部訪問不到3. node.js - nodejs debug問題4. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????5. docker - 如何修改運行中容器的配置6. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?7. docker網絡端口映射,沒有方便點的操作方法么?8. docker-compose中volumes的問題9. golang - 用IDE看docker源碼時的小問題10. debian - docker依賴的aufs-tools源碼哪里可以找到啊?
