Текущий сайт доступен по
протоколу HTTPS. И задания предполагают работу с HTTP-запросами, которые
удобно изучать используя Fiddler 4.
Ниже описано, как его настроить и использовать на примере следующего окружения:
Дистрибутив Fiddler 4 можно скачать по ссылке:
Инструкция по настройке Fiddler + Firefox (простая, понятная):
После установки можно сделать следующие настройки:

Открыть меню настроек из главного меню и на вкладке «Connection» отжать кнопку Act as system proxy on startup.


Также кликнуть по ссылке Protocols и вписать в список протоколов все популярные протоколы:
Для этого нужно выполнить три шага:
В linux командный файл для работы с временным профилем может выглядеть так:
Настройка эталонного профиля
Это работа механизма защиты от расшифровки соединения. Браузер знает, что ранее для https использовался корректный ключ. И вдруг появился новый ключ — ключ Fiddler. Никаких возможностей добавить исключение не будет.
Поэтому важно настроить новый чистый профиль. Плюс в нём будет чистый кеш. Значит все запросы будут отправлены браузером. Что важно при эмуляции нагрузки.

Запустить Mozilla Firefox открыть настройки, расширенные, сертификаты и импортировать сертификат Fiddler 4 в список доверенных. Выбрав сертификат с рабочего стола.

В качестве разрешения — разрешить идентификацию веб-сайтов.


Установить в Mozilla Firefox работу через прокси-сервер на этом же порту, в большинстве случаев это будет localhost и порт 8888.


А в Fiddler 4 видны все запросы и ответы. Их можно просматривать на вкладке «Inspectors».

Для удобства работы можно включить правила (Главное меню / Rules):
Remove All Encodings полезно если сервер отдаёт ответы в сжатом виде (gzip encoding). А это почти всегда так для современного веба. И чтобы поиск по ответам сервера работал корректно нужно сразу распаковывать ответы сервера.
А поиск по ответам очень важен — для корреляции параметров в запросах и ответах. Именно ради поиска мы и выбрали Fiddler 4. Просто просматривать запросы и ответы можно бы было в консоли браузера. А полнотекстовый поиск есть только в Fiddler, других инструментов с подобной функциональностью ещё не встречал.
Отключение — перейти в about:config
Ввести в строку фильтра
network.http.spdy
Далее отключить настройки
security.tls.version.max
В опции
security.tls.version.max по умолчанию значение 4, если в Fiddler была предварительно включена поддержка tls1.1 и tls1.2 (смотри выше как), то версию надо понизить до 3.
Возможно настройки прокси-сервера была выполнены только для протокола http, а для протокола https не были выставлены. Или не была поставлена галочка:
Возможно в Mozilla Firefox прокси-сервер настроен, но в Fiddler не включена расшифровка https. В таком случае почти никакой ценной информации не будет видно.
Возможно в Fiddler включена фильтрация по процессам — при настройке по умолчанию в нижней панели Fiddler должно быть написано:
Если тут написано Internet Explorer или что-то, что не соответствует вашему процессу, то рекомендую покликать на эту надпись и добиться того, чтобы фильтр был в состоянии: All processes
Возможно на вкладке Filters (справа одна из вкладок) была настроена фильтрация запросов. В таком случае название вкладки будет с включенной галочкой:
Причины:
Значит в текущем профиле браузера уже была осуществлена работа с сайтом по https, и при этом использовался отличный от текущего сертификата Fiddler сертификат:
В этом случае можно выбрать три варианта:
Вариант 1. Профиль
Перейти на новый профиль браузера. Настроить его по новой.
Вариант 2. Забыть сайт (в текущем профиле)
Открыть историю, например, по комбинации Ctrl + Shift + H. Кликнуть правой кнопкой мыши на сайт, к которому невозможно подключиться. И выбрать последний пункт «Забыть этот сайт» или «Forget About This Site».
Потеряется вся история работы с сайтом. Куки, сессии.
Вариант 3. Забыть вообще всё (очистить профиль)
Или очистить текущий профиль от всего (если не жалко) — Ctrl + Alt + Del в адресной строке.
Ниже описано, как его настроить и использовать на примере следующего окружения:
- Windows 7 x64 (операционная система);
- .NET Framework 4 (предполагается, что .NET 4 установлен в системе, нужен для работы Fiddler 4);
- Fiddler 4 (прокси сервер);
- Mozilla Firefox (браузер, который будет работать через прокси-сервер).
Дистрибутив Fiddler 4 можно скачать по ссылке:
- https://www.telerik.com/download/fiddler (для windows/os x/linux)
- https://www.telerik.com/docs/default-source/fiddler/fiddlersetup.exe?sfvrsn=4
- https://telerik-fiddler.s3.amazonaws.com/fiddler/fiddler-linux.zip (linux)
- http://www.telerik.com/docs/default-source/fiddler/fiddler-linux.zip?sfvrsn=4 (linux)
Инструкция по настройке Fiddler + Firefox (простая, понятная):
После установки можно сделать следующие настройки:
- сделать прокси-сервис несистемным;
- включить расшифровку HTTPS;
- отключить проверку обновлений.
Настройки Fiddler 4
Сделать прокси-сервис несистемным
Запустить Fiddler 4 и отжать кнопку перехвата всех HTTP-запросов, чтобы не было надписи Capturing.
Открыть меню настроек из главного меню и на вкладке «Connection» отжать кнопку Act as system proxy on startup.

Включить расшировку HTTPS
Открыть меню настроек из главного меню и на вкладке «HTTPS» нажать кнопки:- Capture HTTPS CONNECTs;
- Decrypt HTTPS traffic.

Также кликнуть по ссылке Protocols и вписать в список протоколов все популярные протоколы:
- ssl3;tls1.0;tls1.1;tls1.2
Настройки Mozilla Firefox
Отдельный профиль для работы через Fiddler
Для перехвата трафика и экспериментов желательно иметь браузер, в котором не жалко очистить кеш и изменить настройки. Удобно создать новый отдельный профиль Mozilla Firefox.Для этого нужно выполнить три шага:
- Закрыть открытый браузер Mozilla (это важно)
- Создать пустой каталог для нового профиля: C:\temp\profile
- Создать ярлык или 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 и выгрузить сертификат в файл на рабочий стол.
Запустить Mozilla Firefox открыть настройки, расширенные, сертификаты и импортировать сертификат Fiddler 4 в список доверенных. Выбрав сертификат с рабочего стола.

В качестве разрешения — разрешить идентификацию веб-сайтов.

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

Готово!
Теперь при работе Mozilla Firefox не отображаются ошибки соединения, связанные с сертификатом. А пишется, что соединение зашифровано и корневой сертификат называется «DO_NOT_TRUST», это сертификат Fiddler 4.
А в Fiddler 4 видны все запросы и ответы. Их можно просматривать на вкладке «Inspectors».

Для удобства работы можно включить правила (Главное меню / Rules):
- Hide CONNECTs;
- Remove All Encodings.
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 в адресной строке.
Комментариев нет:
Отправить комментарий