HOWTO · Java
Java で Fiddler を使用して HTTPS トラフィックをキャプチャする
この記事では、Fiddler を使用して HTTPS トラフィックをキャプチャする方法を学習します。
このページの内容
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 をセットアップするか、アプリケーション コードにコードを追加できます。