2017-02-19 19 views
0

Рассмотрим следующую функцию:Почему заголовок и тело не шифруются при использовании HTTPS-запросов HttpClient?

private string ServerUrl = "https://api.myserver.com"; 

public async Task<T> PostRequest<T>(string hook, HttpContent content) 
{ 
    try 
    { 
     var response = await http.PostAsync(ServerUrl + hook, content); 
     var contentString = await response.Content.ReadAsStringAsync(); 

     return Serializer.ToJsonObject<T>(contentString); 
    } 
    catch 
    { 
     return default(T); 
    } 
} 

Теперь она работает правильно, но, как я делаю запросы HTTPS не должны заголовок и тело быть зашифрованы?

Я проверяю вещи с помощью Fiddler v4, и это не так.

Есть ли что-то, что мне не хватает или не совсем понимаю, как это должно работать?

Мой сервер использует LetsEncrypt! Самозаверяющий сертификат.

ответ

1

Fiddler может расшифровать содержимое перед его отображением в пользовательском интерфейсе. У вас включен этот параметр?

enter image description here

+0

Так это означает, что любой, кто Снайпс может легко расшифровать его, а? –

+1

Fiddler может перехватывать зашифрованный трафик только в том случае, если вы создали как Fiddler, так и ваш браузер [особый путь] (https://www.fiddlerbook.com/fiddler/help/httpsdecryption.asp). Обычно заголовок и тело не могут быть перехвачены. –

+2

@J. Doe No. Что происходит, Fiddler устанавливает сертификаты на вашем компьютере и делает Man in Middle proxy connection (вы получите запрос, чтобы разрешить его). Затем он делает запрос HTTPS от вашего имени, используя его сертификат. Затем он может расшифровать HTTPS-запросы. Кто-то без этого сертификата не сможет его расшифровать. – squillman