fiddlerでiPhoneの通信を見るためにやったことメモ


fiddlerでiPhoneの通信を見るための手順が結構たくさんあったので備忘録としてメモを残す。

手順

  1. fiddlerをインストール。
    https://www.telerik.com/download/fiddler

  2. addonsのページからCertMaker for iOS and Androidをインストール。
    http://www.telerik.com/fiddler/add-ons

  3. fiddlerを起動してTools>Options>HTTPSからCapture HTTPS CONNECTsを有効にする。

  4. Protocolsを選択して;tls1.1;tls1.2を追加する。

  5. Tools>Options>ConnectionsAllow remote computers to connectを有効にする。

  6. InspectorsとかがあるパネルのFiddlerScriptタブを開いて、static function OnBeforeRequest関数に以下の処理を追加する。

        if (oSession.HTTPMethodIs("CONNECT"))
        {
            oSession["https-DropSNIAlerts"] = "yup";
            FiddlerApplication.Log.LogString("Legacy compat applied for request");
        }
    
  7. fiddlerを再起動してTools>Options>HTTPS>ActionsからReset All Certificatesを実行し、
    その後Trust Root Certificateを実行して証明書を設定しなおす。

  8. iPhoneをwifiに接続しプロキシを設定する。

  9. iPhoneのsafariを開いてhttp://ipv4.fiddler:8888にアクセスし、FiddlerRoot certificateのリンクから証明書をインストールする。

  10. 設定>一般>情報>証明書信頼設定からインストールした証明書を有効にする。

  11. 通信を確認したいアプリを起動し、fiddlerにログが表示されることを確認する。


所感

2.のCertMaker for iOS and Androidをインストールしたつもりでインストールしていなかったり、インストール後に証明書を再度作成しないといけなかったり、
4.のProtocolsや6.のスクリプトの追加について言及している記事が少なかったり、
10.の証明書を有効にする手順がiOSが新しくなったことによって追加されていたり……

前はもうちょっと簡単に通信ログを確認できるところまでできた気がするような。