17
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Android 7 以降で mitmproxy が動作しない

原因

Android 7 (API Level 24) からセキュリティポリシーが変わり Chrome と Webview 以外についてはユーザーが登録した証明書を受け付けない仕様になったそうです。

対処方法

自分のアプリで受け付けるようにするにはネットワーク・セキュリティの設定をアプリに追加する必要があるようです。

1. ネットワーク・セキュリティの設定を記述した xml を作る

以下の xml を app/src/main/res/xml に作成します。ここでは network_security_config.xml とします。この設定は <debug-overrides>に囲まれているので、デバッグビルドのときにしか反映されないことに注意です。

<network-security-config>  
     <debug-overrides>  
          <trust-anchors>  
               <!-- Additionally trust user added CAs -->  
               <certificates src="user" />  
          </trust-anchors>  
     </debug-overrides>  
</network-security-config>

2. network_security_config.xml を AndroidManifest.xml から読み込まれるようにする

AndroidManifest.xml のApplication タグのところに android:networkSecurityConfig の設定を記述します。

<application
        android:name=".OrenoApp"
        android:networkSecurityConfig="@xml/network_security_config"
        >
        ...
</application>

3. これでビルドして試せばうまくいくはず

参考情報等

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
17
Help us understand the problem. What are the problem?