在我的服务器(生产服务器)中,我有一个goDaddy ssl证书.
我有iOS和Android应用程序连接服务器,iOS连接没有问题,Android与版本4. *一切都很好,但设备2.3.*我总是得到SSLHandshakeException.
我已经在stackoverflow(here)中看到了类似的线程,但没有人帮忙.
然后我看到this线程谈论扩展密钥用法,但在调试时我得到以下信息:
[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" ]
所以我猜证书不是“强制”扩展密钥用法.
同样在this线程中还有一些其他可能的原因,例如日期/时间完全错误,这些都不存在.
考虑到这一点,我现在不知道问题可能在哪里.
有什么建议么?
编辑:
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)