Android仿真器“链验证失败”连接开发人员机器与自签名证书

问题描述:

我有一个android studio项目,调用基于web的api服务。当服务代码是在开发,质量保证,督促等有没有证书的问题,而且试图打网络API时,开发人员框测试一项新功能/错误修复/等我得到:Android仿真器“链验证失败”连接开发人员机器与自签名证书

No reply because of error:

javax.net.ssl.SSLHandshakeException: Chain validation failed

at 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

我通过一个web视图访问该服务。

任何帮助,指针,想法将不胜感激。

TIA

+0

用户安装的证书默认情况下不适用于Android 7.0+。您特别如何访问此服务器? OkHttp3? 'HttpUrlConnection'? 'WebView'?还有别的吗? – CommonsWare

+0

Arrgghh很好的问题。我将更新OP的信息。 – GPGVM

+0

我不确定使用带有自签名证书的服务器的“WebView”是否具有良好的生产级配方。如果你在搜索引擎上搜索'android webview self-signed certificate',你会想出像[this]这样的东西(https://*.com/q/5977977/115145),这会让你的应用程序被踢出去Play商店。尽管如此,我还没有对这个主题进行详尽的搜索,所以也许有一个我不知道的解决方案。 – CommonsWare

我得到

javax.net.ssl.SSLHandshakeException: Chain validation failed 

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

为我工作的解决方案是通过虚拟设备管理器强制冷启动模拟器 - >操作下拉列表 - >现在冷启动