java.security.cert.CertPathValidatorException:找不到证书路径的信任锚点。安卓 2.3
在我的服务器(生产服务器)中,我有一个 goDaddy ssl 证书。我有iOS和Android应用程序与服务器连接,iOS连接没有问题,Android与版本4.*一切都很好,但是对于带有2.3.*的设备,我总是得到一个SSLHandshakeException。
我在Android开发人员页面上确实像(https://developer.android.com/training/articles/security-ssl.html)。
我已经在Stack Overflow(这里)中看到了类似的线程,但没有一个有帮助。
然后我看到这个线程在谈论扩展密钥用法,但在调试时,我得到了以下信息:
[2]: OID: 2.5.29.37, Critical: false
Extended Key Usage: [ "1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2" ]
所以我猜证书不是“强制”扩展密钥用法。
此外,在此线程上还有其他一些可能的原因,例如日期/时间完全错误,这些都不存在。
考虑到这一点,我现在不知道问题可能出在哪里。
有什么建议吗?
编辑:堆栈跟踪如下:
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)