Charlesを使ってiPhoneのhttps通信をキャプチャする

iPhoneアプリhttps通信をキャプチャするにはCharlesを使うと楽です。Windows版、Mac版、Linux版がありますが、今回はMac版で確認しています。トライアル版(30日)は30分毎にCharlesの再起動が必要となりますが、とりあえずはこれで大丈夫です。

事前準備

ifconfigコマンドなどでCharlesを動かすMacのIPアドレスを確認しておく。

Charlesのダウンロード/インストール
Charlesの公式サイトよりダウンロードする。Macの場合はダウンロードしたzipファイルを解凍し、アプリケーションフォルダに移動させればインストール完了です。

Charlesの設定

Charlesはデフォルトだとhttps通信のキャプチャが無効になっているため有効にします。

  1. Charlesを起動し「Proxy」→「Proxy Settings...」をクリック。
  2. SSL」タブの「Enable SSL Proxying」にチェックを入れる。
  3. 「Add」をクリックし「Host」に「*」を入力し「OK」をクリック。

f:id:murapong:20121229200201p:plain

iPhoneの設定

Wifiの通信をCharlesを経由するように変更します。

  1. 「設定」→「Wi-Fi」の接続しているSSIDの矢印をクリック。
  2. 「HTTPプロキシ」→「手動」に以下を入力
  • サーバ:事前準備で確認したIPアドレス
  • ポート:8888
  • 認証:オフ

CharlesのFAQにある通り、iPhoneSSL証明ををインストールする必要があります。iPhoneSafariから http://charlesproxy.com/charles.crt にアクセスし、SSL証明書をインストールしてください。

キャプチャ開始

Charlesのツールバーにある「Start/Stop Recording」ボタンをクリックするとキャプチャが開始されます。iPhoneに入っているアプリやSafariで動作を確認してみましょう。

f:id:murapong:20121229181331p:plain