android 工作室:https 自签名证书不受信任
android studio: https self signed certificate not trusted
试图通过 android studio 访问具有我自己的自签名证书的 https://localhost:5000/
(使用 kotlin),我不断收到错误消息:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
我通过使用方法 2
找到的指南使用 openssl 创建了证书 here
我尝试添加一个 network_security_config.xml 文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">https://10.0.2.2:5000/</domain>
<trust-anchors>
<certificates src="@raw/my_ca"/>
<certificates src="user"/>
<certificates src="system"/>
</trust-anchors>
</domain-config>
</network-security-config>
并且我在 res 中创建了一个名为 raw 的文件夹并将其放入其中 my_ca.pem,(我使用 openssl x509 -in server.crt -out server.pem -outform PEM
从 crt 转换并重命名为 my_ca.pem)
我还尝试在 android 工作室设置中添加该证书,或允许所有不受信任的站点,html 请求的代码与我发现的一样简单:
URL("https://10.0.2.2:5000/").readText()
,它在 AsyncTask class 中,但是 class 所做的只是这个请求
我访问的是 10.0.2.2 而不是 127.0.0.1,因为据我了解,这是通过 te 模拟器访问本地机器的方式,服务器代码是一个非常简单的 python-flask 代码returns 一个简单的字符串
所以我想通了,虽然我确实在 android studio 上启用了自签名证书,但我没有在 kotlin 上启用它们,所以错误来自 kotlin 而不是 android studio,快速从
复制粘贴
已经解决了,虽然我一点也不明白,如果有人能给我发一份关于某种解释或教程的参考资料,那就太好了。
试图通过 android studio 访问具有我自己的自签名证书的 https://localhost:5000/ (使用 kotlin),我不断收到错误消息:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
我通过使用方法 2
找到的指南使用 openssl 创建了证书 here我尝试添加一个 network_security_config.xml 文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">https://10.0.2.2:5000/</domain>
<trust-anchors>
<certificates src="@raw/my_ca"/>
<certificates src="user"/>
<certificates src="system"/>
</trust-anchors>
</domain-config>
</network-security-config>
并且我在 res 中创建了一个名为 raw 的文件夹并将其放入其中 my_ca.pem,(我使用 openssl x509 -in server.crt -out server.pem -outform PEM
从 crt 转换并重命名为 my_ca.pem)
我还尝试在 android 工作室设置中添加该证书,或允许所有不受信任的站点,html 请求的代码与我发现的一样简单:
URL("https://10.0.2.2:5000/").readText()
,它在 AsyncTask class 中,但是 class 所做的只是这个请求
我访问的是 10.0.2.2 而不是 127.0.0.1,因为据我了解,这是通过 te 模拟器访问本地机器的方式,服务器代码是一个非常简单的 python-flask 代码returns 一个简单的字符串
所以我想通了,虽然我确实在 android studio 上启用了自签名证书,但我没有在 kotlin 上启用它们,所以错误来自 kotlin 而不是 android studio,快速从
已经解决了,虽然我一点也不明白,如果有人能给我发一份关于某种解释或教程的参考资料,那就太好了。