3分で読めます
| ハウツー

チャールズ・プロキシ
iPhoneはテキストメッセージからウェブサイトのキャッシュまで、様々なデータを常に送受信していることはご存知でしょう。しかし、裏で何が起こっているのかを常に把握できるわけではありません。Macとは異なり、バックグラウンドプロセスを追跡できる専用のアクティビティモニタがありません。開発者やテスターにとって、これは大きな問題です。アプリのデバッグ、APIリクエストの分析、ネットワークトラフィックの監視など、どのような作業であっても、リアルタイムで何が起こっているかを調べる手段が必要です。そこで、iOS向けのCharles Proxyが必要になるかもしれません。
設定はアプリをインストールするほど簡単ではありません。トラフィックのキャプチャを開始するには、ネットワーク設定、SSL証明書のインストール、プロキシ設定の調整が必要です。すべての手順をご案内します。
Charles Proxyとは何ですか?
Charles Proxyは、開発者がデバイスとインターネット間のネットワークトラフィックを監視できるウェブデバッグツールです。リクエストとレスポンスの検査と変更を可能にする仲介者として機能します。このプラットフォームは、ネットワークリクエストのデバッグ、APIインタラクションの分析、データ転送セキュリティ標準への準拠の検証を行う開発者にとって役立ちます。
注:一部のiOSアプリケーションは、Charles Proxyなどのツールを使用した場合でもトラフィックの傍受を防ぐセキュリティ対策として、SSL証明書ピンニングを実装しています。また、iOSアップデートの変更により、プロキシツールの機能に影響が出る可能性があります。
iPhoneでCharlesプロキシを設定する方法
所要時間: 20分
手順は少し複雑なので、指示に従って慎重に行ってください。そうしないと、デバイスが損傷する可能性があります。続行する前に、Mac(またはPC)とiPhoneを準備してください。
- コンピューターで Charles アプリケーションを開き、プロキシ メニュー>プロキシ設定を選択します。
- [プロキシ] タブで、HTTP プロキシが有効になっていることを確認し、ポート番号(デフォルトは 8888) をメモします。

- [プロキシ] > [SSL プロキシ設定]に移動します。
- 「SSL プロキシを有効にする」ボックスにチェックを入れます。
- [追加]をクリックし、ホスト フィールドに* を入力し、ポート フィールドに * を入力して、すべての SSL トラフィックをキャプチャします。
- iOS デバイスで、[設定] > [Wi-Fi]に移動します。

- コンピュータと同じネットワークに接続されていることを確認します。
- 接続されている Wi-Fi ネットワークの横にある情報アイコン (i)をタップします。
- HTTP プロキシまで下にスクロールし、手動を選択します。

- [サーバー] フィールドに、コンピュータの IP アドレスを入力します(Charles の[ヘルプ] > [ローカル IP アドレス]で確認できます)。
- [ポート]フィールドに、前にメモしたポート番号を入力します (デフォルトは 8888)。
- 認証はオフのままにしておきます。
- iOS デバイスでSafariを開き、 http://chls.pro/sslにアクセスします。
- プロンプトが表示されたら、構成プロファイルをダウンロードします。
- [設定] > [一般] > [プロファイル] (または [プロファイルとデバイス管理])に移動します。
- Charles Proxy CAプロファイルをタップし、[インストール]を選択します。
- インストール後、[設定] > [一般] > [バージョン情報] > [証明書信頼設定]に移動します。
- Charles Proxy CA 証明書の完全な信頼を有効にします。

- コンピュータに戻ってください。iOSデバイスが接続を試みると、Charlesは接続を許可するように促します。
- [許可]を選択します。
- iOS デバイスでSafariを開き、任意の Web サイトに移動します。
- Charles では、デバイスからのネットワーク トラフィックがログに記録されているのを確認できます。
iOSでCharles Proxyを設定する際によくあるエラーを修正する方法
Charles Proxyを正しく設定した後でも、トラフィックが記録されなかったり、特定のアプリが動作しなくなったりするなどのエラーが発生する場合があります。よくある問題の解決方法は次のとおりです。
Charles Proxyはトラフィックを記録しません
Charles がネットワーク アクティビティをキャプチャしていない場合は、デバイスがプロキシ経由でトラフィックをルーティングしていない可能性があります。
- iPhoneとMac が同じWi-Fi ネットワークに接続されていることを確認してください。
- iPhone で[設定] > [Wi-Fi]を開き、ネットワークの横にある情報アイコン (i)をタップして、HTTP プロキシがMac のローカル IP アドレスとポートで手動に設定されていることを確認します
8888。
- iPhoneとCharles Proxy の両方を再起動します。
- アクティブなVPNまたはiCloud プライベート リレーを無効にします。これらにより Charles を経由するトラフィック ルーティングがブロックされる可能性があります。
Charles で HTTPS リクエストが見つからない
最近のほとんどのアプリやウェブサイトは HTTPS を使用しているため、Charles では暗号化されたトラフィックを傍受するために追加の構成が必要です。
- Charlesで、[プロキシ] > [SSL プロキシ設定]に移動します。
- 「SSL プロキシを有効にする」がチェックされているかどうかを確認します。
HTTPS リクエストがまだ表示されない場合は、Charles SSL 証明書を再インストールします。
- [設定] > [一般] > [プロファイルとデバイス管理]に移動し、[Charles Proxy CA]をタップしてインストールします。
- [設定] > [一般] > [情報] > [証明書信頼設定]で完全な信頼を有効にします。

Charles Proxy を設定した後、Wi-Fi が機能しなくなる
セットアップ後に iPhone がインターネットに接続できない場合は、プロキシ設定が誤っている可能性があります。
- [設定] > [Wi-Fi]を開き、ネットワークの横にある情報アイコン (i)をタップして、HTTP プロキシ設定を[自動]にリセットします。
- iPhone を再起動し、Mac のCharles Proxy をオフにします。
- 問題が解決しない場合は、「設定」 > 「一般」 > 「プロファイルとデバイス管理」に移動し、 Charles Proxy CA 証明書を削除して再インストールしてください。
残念ながら、Appleはサードパーティ製のプロキシツールを公式にサポートしていないため、ネットワークトラフィックの変更に関するトラブルシューティングは行いません。ご不明な点がありましたら、Charles ProxyのFAQセクションをご覧ください。また、Wi-FiやSSL設定を誤って変更してしまった場合は、ネットワーク設定をご自身でリセットする必要があります。