背景
OWASP ZAPに対して、事前に所有しているルート証明書をインストールし、SSL通信をインジェクションする必要があった。
環境
Windows 10
OpenSSL 3.0.5 5 Jul 2022 (Library: OpenSSL 3.0.5 5 Jul 2022)
手順の流れ
手元に、OWASP ZAPへインポートして、TLS通信時のインジェクション時署名するためのpem形式の公開鍵と秘密鍵を別々に保持している。(前提)
ZAPのマニュアルを見ると、平文でpem形式1ファイルにまとめる必要があるので、必要に応じて変換を実施して取り込む。
https://www.zaproxy.org/docs/desktop/ui/dialogs/options/dynsslcert/#import
You can also import certificates stored in pem files as long as they include both the certificate and the unencrypted private key in the following format:
- 1,秘密鍵について変換を行う(手元にあった証明書が暗号化済みだったため、pkcs8形式に変換)
openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in private\cakey.pem -out private\pkcs8_cakey.pem
→生成されたファイルが、-----BEGIN PRIVATE KEY-----から始まっていればOK
(公開鍵は、-----BEGIN CERTIFICATE-----で始まっていたため割愛)
- 2,結合、メモ帳などで、上記ZAPのマニュアルで例示されている通り、公開鍵+秘密鍵を1ファイルにまとめる(GUIでもCUIでも好みでOK)
-----BEGIN CERTIFICATE-----
XXXX
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
XXXX
-----END PRIVATE KEY-----
の順番になっていたらOK
- 3,OWASP ZAPへインポートする
GUI(ツール>オプション>ダイナミックSSL証明書>インポート)
ないし、
CUI(zap.bat -cmd -certload ) https://www.zaproxy.org/docs/desktop/cmdline/
余談
zap.bat -cmd -certfulldump で秘密鍵まで含めた状態でOWASP ZAPで使用されているルート証明書をダンプすることができた。
以上。