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. 數組按鍵值封裝!2. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””3. docker不顯示端口映射呢?4. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題5. java - 阿里的開發手冊中為什么禁用map來作為查詢的接受類?6. python3.x - git bash如何運行.bat文件?7. python - flask _sqlalchemy 能否用中文作為索引條件8. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下9. nignx - docker內nginx 80端口被占用10. android - 百度地圖加載完成監聽
