android studio:不信任https自签名证书

时间:2019-12-06 09:52:55

标签: android-studio ssl openssl ca

尝试通过Android Studio访问具有我自己的自签名证书的https://localhost:5000/ (使用kotlin),并且不断出现错误: java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。

我已经通过使用方法2找到here的指南,使用openssl制作了证书

我尝试添加如下所示的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 studio设置上添加该证书,或者允许所有不受信任的站点,html请求中的代码就像我发现的一样简单:

URL("https://10.0.2.2:5000/").readText()

,它在AsyncTask类中,但是该类所做的只是此请求

我访问10.0.2.2而不是127.0.0.1,因为据我了解,它是通过te仿真器访问本地机器的方式,而erver代码是一个非常简单的python烧瓶代码,它返回一个简单的字符串

1 个答案:

答案 0 :(得分:0)

所以我弄清楚了,尽管我确实在android studio上启用了自签名证书,但我没有在kotlin上启用它们,所以错误来自于kotlin而不是android studio,这是this answer的快速复制粘贴。 / p>

已经解决了它,尽管我从中不了解任何事情,并且如果有人可以向我推荐某种移植物或教程,那将是很棒的事情。

相关问题