我为我的服务器生成了自签名证书。 然后使用设置 - >将其添加到Android安全 - >安装。
当我尝试使用应用程序连接到我的服务器时,我收到错误:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
据我所知,我已经将证书添加到了受信任的版本,它可以与我的服务器一起使用,或者我可能错过了什么? 我们的想法是通过Android系统添加证书,而不是更改应用程序代码。
顺便说一句,我使用OkHttpClient
进行网络连接。也许我应该为https
连接启用一些东西?
答案 0 :(得分:2)
对于Android来说,重要的是,当您生成自签名证书时,您将其标记为认证机构,以使其能够对证书进行认证 - 即使只是签署自己并因此证明它本身。< / p>
这是在basicConstraints
扩展名中完成的,声明CA:TRUE
而不是默认CA:FALSE
。导入如此标记的证书时,Android会将其视为用户安装的根证书,您应该可以在凭据存储&gt;下看到它。 受信任的凭据&gt; USER
但是,具有此位的证书是强大的力量,并且恶意工具已经使用这些证书来监视过去所谓的加密用户通信。因此,最近,当这种CA证书生效时,Google Play Protect会希望与用户说一句话。