はじめに
BurpSuite, ZAP, Fiddler は、SSL の通信を解読しながら転送するプロキシツールで、デバグ/セキュリティ診断で使われている
最近、オレオレ証明書のままだと、(診断対象外のドメインの)外部JSを読まない(「オレオレだから危険承知でアクセスしてね」ダイアログがHTMLページの内部処理(XHRなど)なので表示されない)で、エラーとなるケースが結構多いので、そろそろプロキシの証明書を認証局として信用させる方法をメモしておく
プロキシの仕組み
- SSL の証明書とドメイン名が一致しないと信用されない(オレオレ証明書)。
- プロキシは、認証局を立ち上げ、接続先ごとに動的に証明書を生成(証明書のドメインと接続先が一致する)するようにしている。こうする事で、証明書エラーがでない。
- 当然、Webブラウザに提示される証明書の指紋(フィンガープリント)などは異なるけど、そんなことは誰も気にしない
- このためにプロキシの証明書(プロキシの認証局の証明書)をブラウザに信頼させる必要がある。
BurpSuiteの場合
- 証明書をエクスポートして、ブラウザごとに信頼させる
- 特に、Firefox(Windowsの場合)は、独自に管理しているので、Windowsに信頼させておしまい。という事ではない点に注意
- Firefoxでも信頼させれはいい
ZAPの場合
- 証明書をエクスポートして、ブラウザごとに信頼させる
- 特に、Firefox(Windowsの場合)は、独自に管理しているので、Windowsに信頼させておしまい。という事ではない点に注意
- Firefoxでも信頼させれはいい
Fiddlerの場合
証明書を信頼させるためのメニューがある
ただし、このメニューだと Firefox には信頼されないと思う(Firefoxは独自管理だから)
タンデムにしてもよいと思う
Fiddlerは簡単に信頼させられるので、使いやすいプロキシとタンデムにして運用するのもアリだと思う
つまり
Webブラウザ⇔Fiddler⇔BurpSuiteまたはZAP⇔Webアプリケーション
な感じ。