如何在Android上信任自签名证书?

时间:2016-05-17 16:39:51

标签: android ssl ssl-certificate okhttp

我为我的服务器生成了自签名证书。 然后使用设置 - >将其添加到Android安全 - >安装。

当我尝试使用应用程序连接到我的服务器时,我收到错误:

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

据我所知,我已经将证书添加到了受信任的版本,它可以与我的服务器一起使用,或者我可能错过了什么? 我们的想法是通过Android系统添加证书,而不是更改应用程序代码。

顺便说一句,我使用OkHttpClient进行网络连接。也许我应该为https连接启用一些东西?

1 个答案:

答案 0 :(得分:2)

对于Android来说,重要的是,当您生成自签名证书时,您将其标记为认证机构,以使其能够对证书进行认证 - 即使只是签署自己并因此证明它本身。< / p>

这是在basicConstraints扩展名中完成的,声明CA:TRUE而不是默认CA:FALSE。导入如此标记的证书时,Android会将其视为用户安装的根证书,您应该可以在凭据存储&gt;下看到它。 受信任的凭据&gt; USER

但是,具有此位的证书是强大的力量,并且恶意工具已经使用这些证书来监视过去所谓的加密用户通信。因此,最近,当这种CA证书生效时,Google Play Protect会希望与用户说一句话。