我正在尝试添加一个 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" />
我的设置,应用程序:
- Android 应用 Gradle 插件 7.0
- 针对 API 30
图书馆:
- Android 应用 Gradle 插件 7.0
- 针对 API 30
电话:
- 三星盖乐世 S20
- 安卓 11 (=API 30)
为什么没有应用网络安全配置?