10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

アイエンター #1Advent Calendar 2018

Day 19

Android7以上の端末でもCharlesで通信を確認できるようにする方法

Last updated at Posted at 2018-12-17

Android7以上(compileSdkVersion:24以降)でも通信をCharlesで確認できるようにする設定を備忘録として記載しようと思います。
#準備
予め下記の設定を行い、セキュリティ構成ファイルの追加を行って下さい。
1.AndroidManifest.xmlに下記を書き足す。

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest>

2.セキュリティ構成ファイルとしてnetwork_security_config.xmlを下記のようなディレクトリになるように作成する。
res/xml/network_security_config.xml:

あとは下記から自分の用途にあったセキュリティの設定を行い、Android7以上端末でも通信をCharlesでも確認できるようにします。
#デバック時のみ確認を行う場合
デバック時にどの端末でも確認できるようにしたい場合はnetwork_security_config.xmlを下記のようにして下さい。

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

#Charlesの独自証明書をインストールした端末のみ確認を行う場合
デバック時にCharlesが発行した独自証明書がインストールされた端末のみ通信を確認ができるようにする場合は下記のようにして下さい。
1.まずはCharlesのメニューからhelp→SSL Proxying→Save Charles Root Certificateを選択し証明書を保存して下さい。
スクリーンショット 2018-12-16 14.52.02.png

2.保存した証明書を「charles_ssl_proxying_certificate」というファイル名に変更して下記のようなディレクトリになるように追加して下さい。
res/raw/charles_ssl_proxying_certificate:
(※ファイル名に「-」が使えない点と、追加時に拡張子を付けないように気をつけて下さい)

3.最後にnetwork_security_config.xmlを下記のようにしてデバック時に追加した証明書を信頼するように設定します。

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

#Android6以前のようにリリース時も確認できるようにする方法
デバック時リリース時の両方で確認が行えるようにしたい場合はnetwork_security_config.xmlを下記のように設定して下さい。
(※リリース時でも確認できるようになってしまう分、セキュリティ面では弱くなってしまいます)

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system"/>
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>
10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?