2016-05-17 60 views
6

我已经为我的服务器生成了自签名证书。 然后使用设置 - >安全 - >安装将它添加到Android。如何信任Android上的自签名证书?

当我试图与应用我收到提示连接到服务器:

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

我的理解后,我已经添加了证书信任它应该工作的罚款与我的服务器或也许我错过了什么? 这个想法是通过Android系统添加证书,不要更改应用程序代码。

btw我正在使用OkHttpClient进行网络连接。也许我应该为https连接启用一些东西?

+0

可能的重复: http://stackoverflow.com/questions/25509296/trusting-all-certificates-with-okhttp – shilch

+2

不,它不是。我不想相信所有证书... –

+0

您是否导入了CA证书? – shilch

回答

2

对于Android来说,当您生成自签名证书时,将其标记为认证代理机构以授权其对证书进行认证是非常重要的 - 即使只是为了自己签名并证明其本身。

这是在basicConstraints扩展中完成的,声明CA:TRUE而不是默认的CA:FALSE。当您导入如此标记的证书时,Android会将其视为用户安装的根证书,并且您应该能够在凭证存储中看到它>可信凭证>用户

但是,具有此位的证书具有强大的威力,并且这些证书已被恶意工具用于窥探过去所谓的加密用户通信。因此,这些天,当这种CA证书生效时,Google Play Protect将要与用户说一句话。

+0

谢谢。你钉了它! – Zectbumo

相关问题