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 をセットアップするか、アプリケーション コードにコードを追加できます。