チャールズの紹介#
チャールズは、HTTP プロキシ / HTTP リスニング / リバースプロキシサーバーソフトウェアです。開発者はチャールズを使用して、コンピュータとインターネット間の HTTP および HTTPS 情報を確認できます。リクエスト、レスポンス、HTTP リクエストヘッダー(クッキーとキャッシュ情報)を含みます。
チャールズのインストールと使用#
リンクをクリックして https://www.charlesproxy.com/download/ 対応するバージョンをダウンロードしてインストールします。
macOS バージョンの例:
- dmg ファイルをダウンロードするにはここをクリックして 4.5.6 バージョンをダウンロード
- dmg ファイルをダブルクリックして開き、accept をクリックしてアプリケーションファイルを Applications ディレクトリにドラッグします。
- その後、Launchpad でチャールズを開くことができます。
- チャールズを起動すると、権限を要求するポップアップが表示されます。Grant Privileges をクリックして同意し、パスワードを入力して承認します。
- 次に、Proxy - macOS Proxy をチェックしてシステムプロキシを起動します。その後、ブラウザで百度にアクセスすると、左側に先ほどの百度への HTTP リクエスト情報が表示されます。
SSL 証明書のインストール#
上記の手順を経てインストール後、百度のリクエストの下に unknown が表示される理由は、百度が HTTPS を使用して SSL で暗号化された通信を行っているためです。チャールズの証明書をインストールすることでリクエスト情報を取得できます。
Help - SSL Proxying - Install Charles Root Certificate を選択します。
クリックすると、証明書を追加するポップアップが表示されるので、追加を選択します。
追加後、キーチェーンアクセスというシステムソフトウェアを開き、右上でチャールズを検索すると、先ほどインストールした証明書が見つかります。インストール後は信頼されていない証明書です。
インストールした証明書をダブルクリックし、信頼の欄を開いて「常に信頼」を選択し、ウィンドウを閉じてパスワードを入力します。以下のように:
SSL プロキシの設定#
Proxy - SSL Proxying Settings に入り、Add をクリックしてリッスンするドメイン名とポートを追加します。ワイルドカード * をサポートし、SSL は通常 443 ポートです。
ここで 2 つの設定を追加することで、ほとんどの HTTPS リクエストに適用できます。追加が完了したら、HTTPS リクエストを楽しくキャプチャできます。
- *:443
- :
再度百度にアクセスし、リクエストパスをクリックして Contents 欄を選択すると、リクエストとレスポンス情報が表示されます。
iOS デバイスのパケットキャプチャ#
プロキシの設定#
-
まず、スマートフォンとコンピュータが同じネットワークに接続されていることを確認し、Help - Local IP Address をクリックしてコンピュータの IP を確認し、Proxy - Proxy Settings をクリックしてプロキシポート(デフォルトは 8888)を確認します。
-
スマートフォンを開き、設定 - 無線 LAN - 接続されている Wi-Fi の右側の感嘆符をクリックします。(コンピュータとスマートフォンが同じローカルネットワーク内にあることを確認してください!)
-
一番下までスクロールして、プロキシの設定をクリックし、手動を選択して IP とポート情報を入力します。以下の図のように:
-
その後、チャールズが接続リクエストをポップアップ表示し、Allow をクリックします(Deny をクリックした場合は、チャールズを再起動してください)。
その後、スマートフォンのブラウザで百度にアクセスすると、「この接続はプライベート接続ではありません」と表示されます。これは、スマートフォンにチャールズの証明書がまだインストールされていないためです。
iOS にチャールズ証明書をインストール#
- チャールズを開き、Help - SSL - Install Charles Root Certificate on a Mobile Device or Remote Browser を選択します。
- Safari ブラウザを使用して chls.pro/ssl を開き、プロファイルのインストールを許可します。デバイスがローカルネットワークに接続されており、プロキシが正しく設定されていることを確認してください。
- その後、スマートフォンで設定 - 一般 - プロファイルに入り、Charles Proxy CA のプロファイルが追加されているのを確認し、そのプロファイルをクリックして右上のインストールをクリックします。
- インストールが完了したら、設定 - 一般 - このデバイスについて - 証明書信頼設定(最下部)に入り、Charles Proxy CA の証明書を信頼するように設定します。
これでスマートフォンの証明書設定が完了しました。
WeChat ミニプログラムのパケットキャプチャ#
スマートフォン上のリクエストをキャプチャするだけでよい場合は、一時的に Proxy - macOS Proxy(ショートカットキー:Shift + command + P)をオフにして、コンピュータのリクエストがスマートフォンのパケットキャプチャに干渉しないようにします。
ミニプログラムを開き(この記事ではWeChat 指数ミニプログラムを使用)、ミニプログラムを操作してリクエストを送信します。
チャールズを開いてリクエスト情報を確認すると、レスポンスの JSON 情報が表示されます。
感謝の意#
ご覧いただきありがとうございます。共に知識を探求し、共に成長していきましょう。