web-dev-qa-db-ja.com

OWASP ZAP:TLSクライアント証明書認証の使用方法

OWASP ZAPにクライアント証明書を送信させる方法はありますか?

認証用のクライアント証明書を受け取るHTTPS Webサイトがあります。ブラウザーに証明書がインストールされています。以前は、FirefoxでWebサイトにアクセスすると、インストールされている証明書の1つを選択するように求められました。次に、証明書に関連付けられたユーザーとしてWebサイトで認証されます。

ただし、プロキシを使用するようにブラウザを設定した後、証明書を選択するように求められなくなり、ブラウザに次のメッセージが表示されます。

"400 Bad Request
No required SSL certificate was sent
nginx/1.10.2"

ブラウザの代わりにOWASP ZAPで証明書を送信するか、ブラウザにZAPに証明書を強制的に転送させる必要があるようです。これを行う方法はありますか?これはZAPがサポートするものですか?

編集:セットアップは次のように機能します。Firefox、OWASP ZAP、Seleniumプロジェクトの3つのコンポーネントがあります。以前は、SeleniumとFirefoxのみでした。テストしているアプリケーションには、異なる役割を持つ複数のユーザーがいます。Seleniumテストケースには、1人のユーザーとしてのログイン、そのユーザーとしてのタスクの実行(別のユーザーの仕事を生成する)、次のユーザーとしてのログイン、そのユーザーとしての仕事の実行などが含まれます。各ユーザーは、ログインするための独自の証明書を持っています。

以前は、複数のFirefoxプロファイル(ユーザーごとに1つ)を作成し、プロファイルごとに1つの証明書を追加していました。これらのプロファイルの1つを使用してサイトにアクセスすると、ブラウザーはデフォルトで1つの証明書になりました。古いブラウザを閉じて、正しいプロファイルで新しいブラウザを開くことにより、ユーザー間。

現在、適切なブラウザープロファイルを開き、プロキシをlocalhost:8080に設定し、ZAP GUIを起動して、前述のプロファイルを使用するSeleniumテストを実行することにより、ZAPを使用しています。後で、手動でコンテキストを設定し、実行します。クモを攻撃モードに切り替えます。これまでのところ、ZAPで一度に1つの証明書を使用できるようになっています。これは大きな変更です。

1
harrys

ZAPオプション/証明書画面( https://github.com/zaproxy/zap-core-help/wiki/HelpUiDialogsOptionsCertificate )を使用して、使用する必要のある証明書を追加できるはずです。

2
Simon Bennetts