首页 > 解决方案 > 将网络安全配置与 OkHttp 和自定义 CA 相结合

问题描述

我正在尝试添加一个 network-security-config 来限制连接到由我捆绑在应用程序中的一组 CA 签名的服务器(实际上是在应用程序使用的库中)。我有一个现有的设置,适用于将 CA 加载到信任库的位置。现在我添加了一个 network-security-config 并尝试对其进行测试,它似乎不起作用。

这是我试图做的:

AndroidManifest.xml:

<application
            ...
            android:networkSecurityConfig="@xml/network_security_configuration"
...

网络安全配置.xml:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

我对这个新配置的期望是不允许连接到由自签名 CA 签名的服务器,例如我捆绑的那些。但是当我运行应用程序时,连接工作正常,所以网络安全配置似乎不起作用......

我最终想做的是将我的 CA 添加到信任锚:

<certificates src="@raw/my_ca" />

我的设置,应用程序:

图书馆:

电话:

为什么没有应用网络安全配置?

标签: okhttpandroid-network-security-config

解决方案


推荐阅读