Charlesを使ってiPhoneのhttps通信をキャプチャする
iPhoneアプリのhttps通信をキャプチャするにはCharlesを使うと楽です。Windows版、Mac版、Linux版がありますが、今回はMac版で確認しています。トライアル版(30日)は30分毎にCharlesの再起動が必要となりますが、とりあえずはこれで大丈夫です。
事前準備
ifconfigコマンドなどでCharlesを動かすMacのIPアドレスを確認しておく。
Charlesのダウンロード/インストール
Charlesの公式サイトよりダウンロードする。Macの場合はダウンロードしたzipファイルを解凍し、アプリケーションフォルダに移動させればインストール完了です。
Charlesの設定
Charlesはデフォルトだとhttps通信のキャプチャが無効になっているため有効にします。
- Charlesを起動し「Proxy」→「Proxy Settings...」をクリック。
- 「SSL」タブの「Enable SSL Proxying」にチェックを入れる。
- 「Add」をクリックし「Host」に「*」を入力し「OK」をクリック。
iPhoneの設定
Wifiの通信をCharlesを経由するように変更します。
- 「設定」→「Wi-Fi」の接続しているSSIDの矢印をクリック。
- 「HTTPプロキシ」→「手動」に以下を入力
- サーバ:事前準備で確認したIPアドレス
- ポート:8888
- 認証:オフ
CharlesのFAQにある通り、iPhoneにSSL証明ををインストールする必要があります。iPhoneのSafariから http://charlesproxy.com/charles.crt にアクセスし、SSL証明書をインストールしてください。
キャプチャ開始
Charlesのツールバーにある「Start/Stop Recording」ボタンをクリックするとキャプチャが開始されます。iPhoneに入っているアプリやSafariで動作を確認してみましょう。