Android Emulator“链接验证失败”将开发人员计算机与自签名证书连接起来

问题描述 投票:20回答:5

我有一个Android Studio项目,它调用基于Web的API服务。当服务代码在dev,qa,prod等中时没有证书问题,但是当试图访问web api开发人员框以测试新功能/错误修复/等时,我得到:

因错误而无法回复:

javax.net.ssl.SSLHandshakeException:链验证失败

在com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:361)

我有从服务开发者机器导出的自签名证书,没有私钥DER编码。我掉到了模拟器上并“安装”但这不起作用。

我使用了相同的证书并复制到模拟的SD卡。然后从模拟器中的安全设置安装。结果相同。链验证失败。

现在我的安全/证书知识非常基础。我认为错误实际上描述了这个问题。自签名证书中没有链条......但我可能错了。

无论如何,我该如何解决这个问题?

我希望能够运行我的Android代码并点击开发人员框进行测试/调试等。

我已经阅读了这样的帖子,只是为了拥有企业环境,我正在阻止开放SSL等网站。

https://android.stackexchange.com/questions/61540/self-signed-certificate-install-claims-success-but-android-acts-as-if-cert-isn

我通过WebView访问该服务。

android ssl-certificate
5个回答
62
投票

导致此问题的原因可能是设备的错误日期时间


13
投票

我得到了

javax.net.ssl.SSLHandshakeException: Chain validation failed

java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date

对我有用的解决方案是通过虚拟设备管理器 - >操作下拉菜单 - >冷启动立即强制冷启动模拟器


7
投票

只需重新启动模拟器即可解决此错误。长按仿真器菜单中的“关闭电源”按钮,然后选择“重新启动”。


0
投票

我清除了模拟器的所有数据并再次启动它,安装了应用程序,一切正常。但看到其他解决方案,我认为现在可能是一种矫枉过正。


0
投票

我知道这是一个古老的问题,但我有一个类似的问题,有一个完全不同的解决方案。

确保您的SSL未过期。一旦我解决了这个问题,我就不再收到“javax.net.ssl.SSLHandshakeException:Chain validation failed”错误。我有其他问题,但这是一个不同的主题。

这听起来像是一个显而易见的解决方案,但它是值得关注的东西,而不一定是人们心中的第一件事。

© www.soinside.com 2019 - 2024. All rights reserved.