Fiddler 4. Настройка HTTPS

Текущий сайт 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.

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

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

Create a website or blog at WordPress.com Тема: Baskerville 2, автор: Anders Noren.

Вверх ↑

%d такие блоггеры, как: