Текущий сайт доступен по протоколу HTTPS. И задания предполагают работу с HTTP-запросами, которые удобно изучать используя Fiddler 4.
Ниже описано, как его настроить и использовать на примере следующего окружения:
  • Windows 7 x64 (операционная система);
  • .NET Framework 4 (предполагается, что .NET 4 установлен в системе, нужен для работы Fiddler 4);
  • Fiddler 4 (прокси сервер);
  • Mozilla Firefox (браузер, который будет работать через прокси-сервер).
А в завершении статьи описано, что делать, если после настройки остались ошибки подключения. Описано как удалить из кеша браузера информацию об оригинальном сертификате.



Дистрибутив Fiddler 4 можно скачать по ссылке:
Прямые ссылки:
Описание доступно на сайте проекта:
Инструкция по настройке Fiddler + Firefox (простая, понятная):
После установки можно сделать следующие настройки:
  • сделать прокси-сервис несистемным;
  • включить расшифровку HTTPS;
  • отключить проверку обновлений.

Настройки Fiddler 4

Сделать прокси-сервис несистемным

Запустить Fiddler 4 и отжать кнопку перехвата всех HTTP-запросов, чтобы не было надписи Capturing.
fiddler-4-1
Открыть меню настроек из главного меню и на вкладке «Connection» отжать кнопку Act as system proxy on startup.
fiddler-4-2

Включить расшировку HTTPS

Открыть меню настроек из главного меню и на вкладке «HTTPS» нажать кнопки:
  • Capture HTTPS CONNECTs;
  • Decrypt HTTPS traffic.
fiddler-4-3
Также кликнуть по ссылке Protocols и вписать в список протоколов все популярные протоколы:
  • ssl3;tls1.0;tls1.1;tls1.2
как показано выше

Настройки Mozilla Firefox

Отдельный профиль для работы через Fiddler

Для перехвата трафика и экспериментов желательно иметь браузер, в котором не жалко очистить кеш и изменить настройки. Удобно создать новый отдельный профиль Mozilla Firefox.
Для этого нужно выполнить три шага:
  1. Закрыть открытый браузер Mozilla (это важно)
  2. Создать пустой каталог для нового профиля: C:\temp\profile
  3. Создать ярлык или bat-файл c командой запуска Mozilla:
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -new-instance -profile "C:\temp\profile"
Можно запускать браузер с чистым профилем.
В linux командный файл для работы с временным профилем может выглядеть так:
Настройка эталонного профиля
firefox -new-instance --profile ~/firefox.profile -url about:config
Работа с временным профилем — копией эталонного:
fxtmp=/tmp/firefox.tmp.profile

rm -rf $fxtmp && cp -R -f ~/firefox.profile $fxtmp && firefox -new-instance --profile $fxtmp -url about:config
Примечание: если не использовать отдельный профиль, а настроить текущий профиль Mozilla на работу через Fiddler, и уже ранее в этом профиле был открыт исследуемый сайт по https, то браузер не даст расшифровать соединение и использовать Fiddler.
Это работа механизма защиты от расшифровки соединения. Браузер знает, что ранее для https использовался корректный ключ. И вдруг появился новый ключ — ключ Fiddler. Никаких возможностей добавить исключение не будет.
Поэтому важно настроить новый чистый профиль. Плюс в нём будет чистый кеш. Значит все запросы будут отправлены браузером. Что важно при эмуляции нагрузки.

Загрузка сертификата Fiddler в Mozilla Firefox

Запустить Fiddler и выгрузить сертификат в файл на рабочий стол.
fiddler-4-4
Запустить Mozilla Firefox открыть настройки, расширенные, сертификаты и импортировать сертификат Fiddler 4 в список доверенных. Выбрав сертификат с рабочего стола.
firefox
В качестве разрешения — разрешить идентификацию веб-сайтов.
Certificate.Trusted

Настройка работы Mozilla Firefox через прокси сервер

Запустить Fiddler, посмотреть на каком порту он слушает соединения.
fiddler-4-5
Установить в Mozilla Firefox работу через прокси-сервер на этом же порту, в большинстве случаев это будет localhost и порт 8888.
firefox-2

Готово!

Теперь при работе Mozilla Firefox не отображаются ошибки соединения, связанные с сертификатом. А пишется, что соединение зашифровано и корневой сертификат называется «DO_NOT_TRUST», это сертификат Fiddler 4.
firefox-3
А в Fiddler 4 видны все запросы и ответы. Их можно просматривать на вкладке «Inspectors».
fiddler-4-7
Для удобства работы можно включить правила (Главное меню / Rules):
  • Hide CONNECTs;
  • Remove All Encodings.
Hide CONNECTs уберёт из отображения события «рукопожатия» при установке https-соединения.
Remove All Encodings полезно если сервер отдаёт ответы в сжатом виде (gzip encoding). А это почти всегда так для современного веба. И чтобы поиск по ответам сервера работал корректно нужно сразу распаковывать ответы сервера.
А поиск по ответам очень важен — для корреляции параметров в запросах и ответах. Именно ради поиска мы и выбрали Fiddler 4. Просто просматривать запросы и ответы можно бы было в консоли браузера. А полнотекстовый поиск есть только в Fiddler, других инструментов с подобной функциональностью ещё не встречал.

Что делать если остались ошибки

Неподдерживаемые протоколы

Fiddler (версия для Linux во всяком случае) пока не может работать с TLS 1.3 и SPDY. Поэтому чтобы перехватывать трафик от браузера Firefox, непосредственно работая в нём, стоит отключить TLS 1.3 и SPDY в профиле браузера, используемого для перехвата трафика. Они в частности используются на сайте https://loadtestweb.info/
Отключение — перейти в about:config
Ввести в строку фильтра
network.http.spdy
Далее отключить настройки
  • network.http.spdy.enabled
  • network.http.spdy.allow-push
  • network.http.spdy.enabled.http2
  • network.http.spdy.enabled.deps
  • network.http.spdy.websockets
Ввести строку фильтра
security.tls.version.max
В опции
security.tls.version.max по умолчанию значение 4, если в Fiddler была предварительно включена поддержка tls1.1 и tls1.2 (смотри выше как), то версию надо понизить до 3.

Выполняете действие, но не видно никаких логов в Fiddler

Возможно в Mozilla Firefox не настроен прокси-сервер.
Возможно настройки прокси-сервера была выполнены только для протокола http, а для протокола https не были выставлены. Или не была поставлена галочка:
  • [v] Use this proxy server for all protokols
(см. выше)
Возможно в Mozilla Firefox прокси-сервер настроен, но в Fiddler не включена расшифровка https. В таком случае почти никакой ценной информации не будет видно.
Возможно в Fiddler включена фильтрация по процессам — при настройке по умолчанию в нижней панели Fiddler должно быть написано:
  • All processes
(см. выше)
Если тут написано Internet Explorer или что-то, что не соответствует вашему процессу, то рекомендую покликать на эту надпись и добиться того, чтобы фильтр был в состоянии: All processes
Возможно на вкладке Filters (справа одна из вкладок) была настроена фильтрация запросов. В таком случае название вкладки будет с включенной галочкой:
  • [v] Filters
Перейдите на вкладку фильтров и отключите фильтры.

Если браузере видна ошибка, что соединение не защищено

И при этом есть возможность добавить исключение для сайта

Значит был пропущен или не полностью выполнен шаг добавления сертификата Fiddler в доверенные сертификаты браузера.
Причины:
  • настройки Mozilla Firefox были выполнены для отдельного профиля (как рекомендуется в статье), а сейчас запущен профиль по умолчанию, или наоборот
  • сертификат Fiddler был добавлен в доверенные сертификаты Mozilla, но при этом не была проставлена галочка со степенью доверия: Этот сертификат может служить для идентификации веб-сайтов
  • вы настроили работу Mozilla Firefox через Fiddler, и сертификат указали, но потом в Fiddler сгенерировали новый сертификат

Нет возможности добавить исключение для сайта

Ошибка с HSTS (HTTP Strict Transport Security).
Значит в текущем профиле браузера уже была осуществлена работа с сайтом по https, и при этом использовался отличный от текущего сертификата Fiddler сертификат:
  • прежний сертификат Fiddler;
  • сертификат настоящего удостоверяющего центра (ещё до настройки работы браузера через Fiddler).
Это браузер видит неожданную смену сертификата издателя, чует атаку, и блокирует подключение без возможности добавить исключение. Защищает.
В этом случае можно выбрать три варианта:
Вариант 1. Профиль
Перейти на новый профиль браузера. Настроить его по новой.
Вариант 2. Забыть сайт (в текущем профиле)
Открыть историю, например, по комбинации Ctrl + Shift + H. Кликнуть правой кнопкой мыши на сайт, к которому невозможно подключиться. И выбрать последний пункт «Забыть этот сайт» или «Forget About This Site».
Потеряется вся история работы с сайтом. Куки, сессии.
Вариант 3. Забыть вообще всё (очистить профиль)
Или очистить текущий профиль от всего (если не жалко) — Ctrl + Alt + Del в адресной строке.