情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

FiddlerでAndroidのHTTPS通信の中身を確認する方法メモ

Android 7.0 (16) Chrome (93) Fiddler (2) Xperia Z5 (46) Xperia Z5 SO-01H (46)

以前、FddlerでAndroid Chromeの通信を確認するための設定手順を書いたのですが、HTTPS通信の場合、「HTTPS decryption is disabled. Click to configure...」とエラー表示が出てしまったりして、SSL通信の内容を確認できません

実際にTextViewなどを開いてみても、「This is a CONNECT tunnel, through which encrypted HTTPS traffic flows.」や「A SSLv3-compatible ServerHello handshake was found. Fiddler extracted the parameters below.」などと表示されるのみで、

今回はFiddlerの「HTTPS decryption」機能の使ってみたので、その際の手順をメモしておきます

Fiddlerでプロキシサーバーを設置する

まず、Android端末の通信をFiddlerで中継するために、Fiddlerでプロキシサーバーを立てて、Android端末からそのプロキシサーバーを経由した通信をできるように設定しておいてください。

その手順が前回の記事です:FiddlerでAndroid ChromeのHTTP通信のリクエストヘッダなどを見る設定手順メモ

これだけだとHTTPS通信が上手く見れないので、ここからFiddlerのHTTPS decryption機能を使います。

証明書をAndroid端末にインストールする

上記の設定を終えた状態でFiddlerを起動したまま、Android端末から「http://ipv4.fiddler:8888(Fiddlerが起動していて、プロキシサーバーとして指定していないと表示できないので注意)」へアクセスして、「FiddlerRoot certificate(一番下の青いリンク)」をタップしました。

すると、ファイルのダウンロードが開始され、ダウンロードが完了すると次の「証明書の名前を指定する」という画面が出てくるので、今回は「fiddler」という名前を入力して、「OK」をタップし、インストールしました

証明書の名前を指定する
証明書名:
[Fiddler]
認証情報の使用:
VPNとアプリ
パッケージの内容:
CA証明書1件
[キャンセル] [OK]

HTTPS decriptionを有効にする

次にFiddler4の画面に戻って、「Tools>Telerik Fiddler Options...」を開いて、「Decrypt HTTPS traffic」にチェックを入れます。

すると、次の警告が表示されるのですが、今回影響範囲を極力抑えたかったので、ここでは「No」を選択しました。

SCARY TEXT AHEAD: Read Carefully!

To intercept HTTPS traffic, Fiddler generates a unique root certificate.

You may configure Windows to trust this root certificate to suppress security warnings. This is generally safe.

Click 'Yes' to reconfigure Windows' Trusted CA list.
Click 'No' if this is all geek to you.

Trust the Fiddler Root certificate? [Yes] [No]

すると詳細設定が表示されるので、一番上の設定を、「...from remote clients only」に設定して、Windows上の通信はFiddlerのHTTPS decriptionの対象範囲から外し、Android端末でのみ動作するようにしました。「OK」で設定を閉じて、加えて、Fiddlerを再起動しました。

(※一度設定を変更せずに実施したのですが、Kasperskyから「暗号化された接続が確立されたドメインに対する信頼性を保証できません(この証明書または証明書チェーンの証明書の1つが、信頼できないルートセンターのものです)」エラーが大量に出てしまいました)

準備完了

ここまでで、Fiddler側の設定と、Android端末側の設定が完了しました。

これで、今まで見えなかった、SSL上のHTTP通信の内容を、通常のHTTP通信同様に閲覧できるようになりました。

事後処理

利用の終了後にFiddlerの証明書をアンインストールするには、Androidの設定を開いて、「ロック画面とセキュリティ>信頼できる認証情報」を開いて、「ユーザー」タブから「DO_NOT_TRUST(DO_NOT_TRUST_FiddlerRoot)」をタップして「削除」を選択することで実行できました。

メモ

証明書が上手くインストールできない時は、「Add Ons - Fiddler Web Debugging Proxy - Telerik」にある「CertMaker for iOS and Android」をインストールしてから作業を進めると良いようなのですが、今回は一切利用しませんでした(問題なく証明書をインストールできました)。

コメント(0)

新しいコメントを投稿