アプリにバンドルした一連の CA によって署名されたサーバーへの接続を制限する network-security-config を追加しようとしています (実際には、アプリで使用されるライブラリにあります)。CA がトラスト ストアにロードされる場所で機能する既存のセットアップがあります。network-security-config を追加してテストしようとしましたが、うまくいかないようです。
これが私がやろうとしたことです:
AndroidManifest.xml:
<application
...
android:networkSecurityConfig="@xml/network_security_configuration"
...
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
- Android 11 (=API 30)
network-security-configuration が適用されないのはなぜですか?