Текущий сайт https://loadtestweb.wordpress.com/ доступен по протоколу 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 в адресной строке.

Использовано изображение с сайта http://toposrednik.ru.

Если остались вопросы, оставляйте комментарии. Или задавайте вопросы почтой, адрес в разделе Контакты.

Fiddler 4. Настройка HTTPS: 3 комментария

    1. В настройках Mozilla Firefox (адрес страницы: about:config) есть параметр security.OCSP.require. Его значение по умолчанию false, но если это значение будет равно true, то перед установкой соединения будет проверяться ocsp статус сертификата.

      Для точной проверки нужна версия браузера. Операционная система. И информация по настройкам ocsp.

      Нравится

Оставьте комментарий