小编The*_*fou的帖子

使用 Android Native、Android Studio 和改造在本地网络中信任我自己的自签名证书

我正在创建一个简单的 Android 应用程序,将在封闭的本地网络中使用。在此本地网络中,正在运行 Flask 服务器,该服务器配置为通过 nginx 代理使用自签名证书。服务器的后端应用程序使用自签名证书可以正常工作,我已经使用浏览器和邮递员验证了这一点。(显然,我必须明确要求浏览器信任我的证书)。

几天来,我一直试图在网上找到一些关于如何让我的 Android 应用程序接受我的证书的明确答案,但我尝试过的所有事情都让我走进了死胡同。有时这些解决方案已被弃用,有时又对于这样一件微不足道的事情来说太复杂了。

http请求是使用Retrofit发送的;据我了解,我必须以某种方式配置改造实例的 http 客户端以接受我的证书。

我已经设法使用接受任何证书的客户端,但这不是我想要的。理想情况下,我的证书将添加到官方 CA 默认信任的证书“集”中,以便应用程序也可以向外部资源发送请求。

那么,假设后端应用程序运行在例如 192.168.1.10:443 上,我该如何处理呢?

注意:我已阅读此处给出的说明https://developer.android.com/training/articles/security-config.html#TrustingAdditionalCas 并添加了

android:networkSecurityConfig="@xml/network_security_config"

到我的清单文件,但我收到以下错误:

Hostname 192.168.1.10 not verified: certificate sha256/...../..... 并继续列出证书的信息,如通用名称等。

https android retrofit self-signed-certificate

7
推荐指数
1
解决办法
1万
查看次数