Web Application Security Memo

ウェブセキュリティに関するメモ書き

OWASP ZAP のルート証明書を更新してブラウザにインポートする

※当サイトにはプロモーションが含まれています。

公開日: 更新日:

OWASP ZAP が生成するルート証明書にも有効期間があるので、その期間が過ぎたら更新しましょうという話しです。

更新したルート証明書を、Chrome ブラウザにインポートする手順も紹介します。

1. OWASP ZAP のルート証明書について

OWASP ZAP をローカルプロキシとして使用する場合、https な URL (TLS/SSL) でも問題なくアクセスするためには、ZAPが生成したルート証明書をブラウザにインポートしておく必要があります。

そして、このルート証明書にも有効期間があります。この有効期間が過ぎた場合、もしくはもう少しで過ぎそうな場合に、ルート証明書を更新する手順について説明します。

※ ZAP 内では「ルートCA証明書」という言葉が使われていますが、本ページでは「ルート証明書」と記述します。

ZAPを使ってローカルプロキシした際、ルート証明書の有効期間が過ぎていると、ブラウザがそれを検知します。

2. OWASP ZAP のルート証明書を更新する手順

ZAP 内でルート証明書を更新する

1. OWASP ZAP を起動し、[ツール] - [オプション…] を開きます。

2. [ダイナミックSSL証明書] を選択します。

3. 「生成」ボタンを押すと、古い証明書を上書きしてよいか聞いてくるので、「はい」をクリックします。

4. これで、新しいルート証明書が生成されました。「表示」ボタンを押すと、新しいルート証明書の情報を見ることができます。

有効期間が更新されているか確認しておきます。

また、[詳細]タブ内の「拇印」に表示された文字列を覚えておきます。この後で使います。

5. 「保存」ボタンを押して、生成したルート証明書をファイルとしてどこかに保存しておきます。これは、ブラウザにインポートするためです。

ブラウザにルート証明書をインポートする

Chrome にルート証明書をインポートする手順について説明します。

(1) Chrome を起動し、[設定] - [プライバシーとセキュリティ] - [証明書の管理] をクリックします。

(2) [信頼されたルート認証機関]タブを選択し、[インポート]ボタンをクリックします。

(3) [次へ]ボタンをクリックします。

(4) [参照]ボタンを押して、先程保存しておいたルート証明書を選択します。

(5) 「証明書をすべて次のストアに配置する」が選択され、「証明書ストア」として「信頼されたルート証明機関」が選択されていると思いますが、このまま「次へ」ボタンをクリックします。

(6) [完了]ボタンをクリックします。

(7) インポートする証明書が正しいものかどうか聞いてきます。

画面中央の「拇印」に表示された文字列が、先程ルート証明書を生成した時に確認しておいた「拇印」と同じ文字列であれば同一の証明書であることに間違いありません。

ここでもし違っていたら、生成したルート証明書とは違う証明書をインポートしようとしていますので、「いいえ」を選択してもう一度証明書の保存からやり直してください。

(8) これでインポートが完了です。

(9) 古い証明書は削除しておきましょう。

この時点で、「OWASP Zed Attack Proxy Root CA」が発行した古いルート証明書も残ったままになっていると思いますが、紛らわしいのでこれは削除しておきましょう。どれが古いルート証明書か判別するには、以下のように「拇印」を見るか、または有効期間を見れば分かるはずです。古いルート証明書を選択して「削除」ボタンを押しましょう。

3. おわりに

例えば ZAP をローカルプロキシとして、https://www.pupha.net にアクセスした場合、ZAP は自前のルート証明書を使って、www.pupha.net のサーバー証明書をその場で(= 動的に、ダイナミックに)生成し、ブラウザに返してくれます。ブラウザには、そのルート証明書が登録されているので、「これは信頼できるサーバー証明書だ」と認識してくれるのです。

また、ZAP が生成してくれるルート証明書は、毎回一意なルート証明書(他と同じものにはならない)になるので、このルート証明書を使って署名したサーバー証明書を悪用することはほぼできません。