HTTPプロキシで、SSL通信のシナリオをキャプチャする方法

 

一昔前とは異なり、最近は常時SSLが当たり前になってきました。常時SSLとは、WEBサイト全体をHTTPS通信にすることをさします。Googleさんがセキュリティ上の観点から推奨しているので、この流れは止まらないでしょう。

ユーザにとってはセキュリティを高める常時SSLですが、JMeterで負荷テストシナリオを作成するには少々厄介です。

シナリオ作成のときには、HTTPプロキシを介して行うことが一般的ですが、SSL通信がかかっていると情報を取得できません。暗号化されているので当然ですね。

そこで、JMeter上のHTTPプロキシにSSLアクセラレータ代わりのことをさせる必要があります。JMeterで発行する証明書の認証局は自前のものなので、ブラウザに少々手を加えてあげる必要があります。

この記事では、HTTPS通信のサイトでJMeterのシナリオを作成する方法を解説します。

HTTPS通信のシナリオをキャプチャした場合

プロキシサーバ経由でhttpsのサイトにアクセスすると図のように「安全な接続ではありません」とエラーが発生してサイトにアクセスできません。

証明書エラー

証明書エラー

※HTTPプロキシを使ったシナリオ作成方法は「シナリオ作成」の記事をご覧ください。

理由は、JMeter上に立てたプロキシサーバで設定しているSSL証明書の認証局が信頼されていないために発生します。

プロキシサーバ開始時に下の図のようなダイアログがでますが、JMeterで作成した証明書をブラウザにインストールしてね。というメッセージになります。

HTTPプロキシ開始時のダイアログ

HTTPプロキシ開始時のダイアログ

認証局を信頼済みにする方法

FireFoxの場合

オプションから証明書を表示

オプションを選択し、下のほうにある「証明書」の項目から「証明書の表示」ボタンを押します。

FireFoxのオプション画面

FireFoxのオプション画面

証明書のインポート

「認証局証明書」のタブを開いて「インポート」ボタンを押します。

証明書を表示させる

証明書を表示させる

JMeterのインストールディレクトリ直下のbinディレクトリに「ApacheJMeterTemporaryRootCA.crt」というファイルがあるので選択します。

このファイルはプロキシサーバ起動時に自動で作られるようです。

ApacheJMeterTemporaryRootCA.crtを選択

ApacheJMeterTemporaryRootCA.crtを選択

「ウェブサイトの識別を信頼する」にチェックボックスを入れておきます。

ウェブサイトの識別を信頼する

ウェブサイトの識別を信頼する

念のため「証明書を表示」して、フィンガープリントを確認しておきましょう。プロキシサーバ起動時のダイアログに書いてあります。

フィンガープリントの確認

フィンガープリントの確認

下の図のように追加されていればOKです。

証明書の確認

証明書の確認

証明書の期限が7日程度になっているようなので、都度入れ替えてあげる必要があります。

その他ブラウザについて

その他のブラウザは設定方法が異なるようなので、別途まとめようと思います。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。