リモートサーバーでホストされているC#Web APIをテストしています。また、Fiddlerを使用してHTTPSトラフィックを監視しています。
私を混乱させるのは、Fiddlerを介して、要求と応答の両方のPOSTペイロード、ヘッダー、およびホストURLアドレスのすべてを見ることができるということです。SSL証明書が実際にこのデータを暗号化するべきではありません。暗号化されたHTTPSリクエストの例を見つけようとしましたが、見つけることができません。
FiddlerでHTTPSリクエスト全体を表示できるのはなぜですか?
FiddlerでTLSトラフィックを復号化する方法については、 これらの手順 を参照してください。 Fiddlersのルート証明書をOSトラストストアにインストールするように指示します。
これは、ユーザーが従来のTLSインターセプトを行っていることを意味します。ブラウザーとFiddlerの間には1つのTLS接続があり、Fiddlerとサーバーの間には別のTLS接続があります。 1つ目は、Fiddlerによってオンザフライで生成され、ルート証明書で署名された証明書を使用します。 2つ目は、サーバーが提供した証明書を使用します。以下のように:
Browser <--- TLS Connection #1 ---> Fiddler <--- TLS Connection #2 ---> example.com
| |
Certificate signed Genuine certificate
by Fiddler for exmple.com
これは、OSがFiddlersのルート証明書を信頼するように指示されているため機能します。そのため、Fiddlersは必要なドメインの証明書をその場でスピンアップでき、ブラウザーはそれを受け入れます。