AndroidデバイスをプロキシとしてCharlesを構成する
この記事では、ネットワークリクエストをCharlesを通じてプロキシするためのAndroidデバイスの構成方法について説明します。Charlesは、Tealium for Androidの実装をトラブルシューティングおよびデバッグするのに役立ちます。
Charlesプロキシの構成
Charlesプロキシを構成するには、以下の手順を使用します:
- Proxy > Proxy Settingsに移動します。
- Proxiesタブをクリックし、HTTP Proxy Portフィールドに
8888
を入力します。 - Proxy > SSL Proxying Settingsに移動します。
- SSL Proxyingタブをクリックし、Enable SSL Proxyingチェックボックスを選択して、ロケーションを構成します。
- デフォルトでは、Charlesはリストに含まれる特定のドメインのみでSSLプロキシングを実行します。
- Addをクリックし、上記のロケーションリストに
*.*
を入力します。 - アプリが正常に動作しなくなった場合、アプリがCharlesプロキシからの自己署名証明書を拒否している可能性があります。このような場合は、ワイルドカードマッチを無効にし、Tealiumドメインの
*.tealiumiq.com
と*.tiqcdn.com
のみをリストに記載します。
- ポートのデフォルト値は
443
です。Charlesが自動的に構成するため、このフィールドは空白のままにしておいてください。
IPアドレスの確認
コンピュータのIPアドレスを確認するには:
- System Preferences > Network > Wifi > Advanced > TCP/IPに移動します。
Macでは、システムトレイのネットワークアイコンをクリックしながらOptionキーを押し続けることで確認できます。
- IPV4アドレスをメモしておきます。後の手順で必要になります。
AndroidデバイスをCharlesプロキシを使用するように構成する
AndroidデバイスをCharlesプロキシを使用するように構成するには、以下の手順を使用します:
- Settings > Wifiに移動します。
- 現在接続しているWifiネットワークデバイスの電源キーを押し続けます。
- モーダルが表示されたら、Modify Networkを選択します。
- Show Advanced Optionsを選択して、プロキシオプションを表示します。
- Proxyの下で、Manualを選択します。
- Proxy Host Nameフィールドに、以前に開発マシンから保存したIPV4アドレスを入力します。
- Proxy Portフィールドに、Charlesの構成時に使用した同じポート
8888
を入力します。 - Saveをクリックして構成を保存し、終了します。
- デバイス上のブラウザを開いてテストします。CharlesはSSLプロキシングを許可するか拒否するかを求めるダイアログを表示します。
- Allowをクリックします。SSLプロキシングを許可するように求められない場合は、Charlesを再起動して再試行します。
- デバイスからhttp://charlesproxy.com/getsslに移動し、Charles SSL証明書をダウンロードします。
新しいバージョンのAndroidでは、download unsuccessful
などのエラーが表示されることがあります。このような場合は、以下の手順を使用します:- Help > SSL Proxying > Save Charles Root Certificateに移動します。
- ファイルタイプをデフォルトの
.pem
から.cer
に変更し、後で覚えておく場所に保存します。 - SDカード、USBケーブル、またはGoogle Driveなどのリモート転送を使用して、
.cer
ファイルをデバイスに転送します。 - Android File ManagerやFile Commanderなどのファイルマネージャからファイルを開きます。
- 証明書を保存するように求められます。残りの手順を続行します。
- 証明書に名前を付け、信頼される証明書として確認します。完了したら無効にするか削除してください。
- 証明書がインストールされたら、PINを構成します。
Android N以上の追加構成手順
Android N以降では、Charles SSLプロキシングによって生成されたSSL証明書を信頼するようにアプリケーションに構成を追加する必要があります。これは、自分が制御するアプリケーションでのみSSLプロキシングを使用できることを意味します。
Charlesを信頼するようにアプリを構成するためには、まずNetwork Security Configuration Fileをアプリに追加する必要があります。このファイルはシステムデフォルトを上書きし、アプリがユーザーがインストールしたCA証明書(Charles Root Certificateなど)を信頼するようにします。
構成ファイルでは、これがデバッグビルドのアプリケーションでのみ適用され、プロダクションビルドではデフォルトの信頼プロファイルが使用されるように指定することもできます。
以下の手順を使用して、Network Security Configuration Fileを追加し、そのファイルをアプリのマニフェストに参照させます:
- 以下の例を使用して、Security Network Configurationファイルを作成します。
<network-security-config> <debug-overrides> <trust-anchors> <!-- Trust user added CAs while debuggable only --> <certificates src="user" /> </trust-anchors> </debug-overrides> </network-security-config>
- ファイル名を
network_security_config.xml
とします。 - ファイルを
res/xml/network_security_config.xml
にコピーします。 - 以下の例を使用して、
network_security_config.xml
ファイルへの参照をアプリのマニフェストに追加します:<?xml version="1.0" encoding="utf-8"?> <manifest ... > <application android:networkSecurityConfig="@xml/network_security_config" ... > ... </application> </manifest>
詳細情報については、Charles proxy SSL CertificatesのドキュメンテーションのAndroidセクションを参照してください。
ネットワークトラフィックの表示をフィルタリングするためのヒント
以下の表は、ネットワークトラフィックの表示をフィルタリングするためのヒントを提供します:
フィルタ | アクション |
---|---|
デバイスによるフィルタ |
|
ドメインによるフィルタ |
|
デバイスから証明書をクリアし、PINを削除する
Androidデバイスから証明書をクリアし、PINを削除することは任意です。
証明書をクリアし、PINを削除する、または両方を行うには、以下の手順を使用します:
- Androidデバイス上のSettingsアプリケーションを開きます。
- Security > Clear Credentialsに移動し、オプションのリストの最下部にあります。
- Clear Credentialsをクリックします。
- 資格情報をクリアすることを確認します。
- PINを削除するには、Settings > Lock Screen > Screen Lockに移動し、PINを削除します。
詳細情報については、Charles SSL ProxyingとiOSデバイスをプロキシとしてCharlesを構成するを参照してください。
最終更新日 :: 2024年March月29日