web-dev-qa-db-ja.com

Fiddlerを介して完全なHTTPSリクエストを表示できるのはなぜですか?

リモートサーバーでホストされているC#Web APIをテストしています。また、Fiddlerを使用してHTTPSトラフィックを監視しています。

私を混乱させるのは、Fiddlerを介して、要求と応答の両方のPOSTペイロード、ヘッダー、およびホストURLアドレスのすべてを見ることができるということです。SSL証明書が実際にこのデータを暗号化するべきではありません。暗号化されたHTTPSリクエストの例を見つけようとしましたが、見つけることができません。

FiddlerでHTTPSリクエスト全体を表示できるのはなぜですか?

4
mko

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は必要なドメインの証明書をその場でスピンアップでき、ブラウザーはそれを受け入れます。

5
Anders