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. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题2. mysql - SQL操作时间的函数?3. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)4. java - mybatis怎么实现在数据库中有就修改,没有就添加5. MYSQL新建用户设置可以远程访问的问题6. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?7. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!8. docker-compose中volumes的问题9. angular.js - angularjs的自定义过滤器如何给文字加颜色?10. docker api 开发的端口怎么获取?
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)