Java で Fiddler を使用して HTTPS トラフィックをキャプチャする
-
フィドラーを構成する - キーストアを生成する
-
Fiddlerを使用して HTTPS トラフィックをキャプチャするようにアプリケーション コードを構成する -
Fiddlerで HTTPS トラフィックをキャプチャするようにEclipseを構成する
Fiddler は、開発者が Web アプリケーションをデバッグするのに役立つ Web デバッグ プロキシ ツールです。 ネットワーク トラフィックをキャプチャし、送受信データを監視できます。
この記事では、Fiddler をセットアップして HTTPS トラフィックをキャプチャする方法を説明します。 そのため、ユーザーは Java を使用して HTTPS トラフィックをエラーなしでキャプチャできます。
フィドラー を構成する
Fiddler を構成するには、以下の手順に従ってください。
-
Fiddlerはこちら をダウンロードして、ローカル コンピューターにインストールします。 -
ここで、下の画像に示すように、
Fiddlerが HTTPS トラフィックをキャプチャすることを確認します。
-
次に、
ツール>オプションを開きます。 ダイアログボックスがポップアップします。接続タブに移動します。 -
ここで、Java コードで使用する
Fiddler listens on portテキスト フィールドの値を確認します。 デフォルト値は8888です。
-
オプションダイアログ ボックスで、HTTPSタブに移動し、HTTPS 接続のキャプチャとHTTPS トラフィックの復号化がチェックされていることを確認します。 また、HTTPS トラフィックの復号化のドロップダウン メニューで...すべてのプロセスからを選択します。
-
次に、証明書をインストールします。
-
最後のステップとして、
オプションダイアログのHTTPSタブで、アクションボタンをクリックし、ルート証明書をデスクトップにエクスポートを選択して、証明書をデバイスのデスクトップにエクスポートします。
キーストアを生成する
デスクトップにエクスポートした証明書を使用して KeyStore を生成する必要があります。
-
コマンド プロンプトを管理者として実行します。 -
ルート ディレクトリを見つけるには、ターミナルに次のコマンドを入力する必要があります。
echo %JAVA_HOME% -
ターミナル内で、上記の手順で取得した Java のルート ディレクトリに移動します。
-
次に、
cmdでcd binコマンドを使用して、Java ディレクトリのbinフォルダーに移動します。 -
以下のコマンドをターミナルで実行します。
keytool.exe -import -file C:\Users\\\Desktop\\FiddlerRoot.cer -keystore FiddlerKeystore -alias Fiddler -
パスワードを入力してから、再入力して確認する必要があります。
-
yを押して、Trust this certificateに答えます。
Fiddler を使用して HTTPS トラフィックをキャプチャするようにアプリケーション コードを構成する
Fiddler をセットアップし、証明書を使用して KeyStore を生成しました。 Java で HTTPS トラフィックをキャプチャするには、以下のコードをアプリケーションに追加する必要があります。
// To capture HTTPS traffic
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("https.proxyPort", "8888");
// To capture HTTP traffic
System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8888");
また、ユーザーは 127.0.0.1 の代わりに localhost を使用できます。 ユーザーが 8888 以外のポートを使用する場合は、Fiddler 内のポートも変更する必要があります。これについては、Fiddler の構成 セクションで説明しました。
Fiddler で HTTPS トラフィックをキャプチャするように Eclipse を構成する
アプリケーションにコードを追加するのではなく、HTTPS トラフィックをキャプチャするように Eclipse IDE を構成する場合は、以下の手順に従う必要があります。
-
メニューバーから
実行>実行構成に移動します。 -
Run Configurationsダイアログ ボックスのサイドバーからプロジェクトを選択し、Argumentsタブに移動します。 -
以下の引数を
VM Argumentsセクションに入力します。-DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 -Djavax.net.ssl.trustStore="path\to\java_home\bin\FiddlerKeyStore" -Djavax.net.ssl.trustStorePassword="password_used_during_keystore_creation"
-
次に、
適用ボタンをクリックして、実行ボタンを押します。
この記事では、HTTPS トラフィックをキャプチャするように Fiddler を正常にセットアップしました。 また、フィドラー証明書を使用して KeyStore を生成しました。
その後、Java アプリケーションを使用して HTTPS トラフィックをキャプチャするための 2つの選択肢があります。 ユーザーは、Eclipse をセットアップするか、アプリケーション コードにコードを追加できます。
