HTTPプロキシで、SSL通信のシナリオをキャプチャする方法
一昔前とは異なり、最近は常時SSLが当たり前になってきました。常時SSLとは、WEBサイト全体をHTTPS通信にすることをさします。Googleさんがセキュリティ上の観点から推奨しているので、この流れは止まらないでしょう。
ユーザにとってはセキュリティを高める常時SSLですが、JMeterで負荷テストシナリオを作成するには少々厄介です。
シナリオ作成のときには、HTTPプロキシを介して行うことが一般的ですが、SSL通信がかかっていると情報を取得できません。暗号化されているので当然ですね。
そこで、JMeter上のHTTPプロキシにSSLアクセラレータ代わりのことをさせる必要があります。JMeterで発行する証明書の認証局は自前のものなので、ブラウザに少々手を加えてあげる必要があります。
この記事では、HTTPS通信のサイトでJMeterのシナリオを作成する方法を解説します。
HTTPS通信のシナリオをキャプチャした場合
プロキシサーバ経由でhttpsのサイトにアクセスすると図のように「安全な接続ではありません」とエラーが発生してサイトにアクセスできません。
※HTTPプロキシを使ったシナリオ作成方法は「シナリオ作成」の記事をご覧ください。
理由は、JMeter上に立てたプロキシサーバで設定しているSSL証明書の認証局が信頼されていないために発生します。
プロキシサーバ開始時に下の図のようなダイアログがでますが、JMeterで作成した証明書をブラウザにインストールしてね。というメッセージになります。
認証局を信頼済みにする方法
FireFoxの場合
オプションから証明書を表示
オプションを選択し、下のほうにある「証明書」の項目から「証明書の表示」ボタンを押します。
証明書のインポート
「認証局証明書」のタブを開いて「インポート」ボタンを押します。
JMeterのインストールディレクトリ直下のbinディレクトリに「ApacheJMeterTemporaryRootCA.crt」というファイルがあるので選択します。
このファイルはプロキシサーバ起動時に自動で作られるようです。
「ウェブサイトの識別を信頼する」にチェックボックスを入れておきます。
念のため「証明書を表示」して、フィンガープリントを確認しておきましょう。プロキシサーバ起動時のダイアログに書いてあります。
下の図のように追加されていればOKです。
証明書の期限が7日程度になっているようなので、都度入れ替えてあげる必要があります。
その他ブラウザについて
その他のブラウザは設定方法が異なるようなので、別途まとめようと思います。
この記事へのコメントはこちら