Туториал: HTTPs запросы с iOS и Android девайсов не расшифровываются в Fiddler

При работе с Fiddler часто возникают проблемы, которые решаются перезапуском сниффера, перезагрузкой компьютера или девайса, с которого сниффится трафик. Но бывает и такое, что перезапуском проблема не решилась и даже полной переустановкой фиддлера. Это статья не о чем-то новом и неизведанном, а скорее туториал, который поможет вам, когда вы всё сделали правильно, но "ничего не работает".

Для начала стоит проверить (даже, если уже проверяли) настройки Fiddler и девайса, с которого вы хотите сниффить трафик.

Настройка Fiddler на Windows для сниффинга трафика с iOS и Android девайсов

  1. Открыть Fiddler

  2. Перейти Tools -> Options

  3. Во вкладке Connections установить галочку Allow remote computers to connect

    Вкладка Connections
    Вкладка Connections
  4. Перезагрузить Fiddler, чтобы изменения вступили в силу

  5. Во вкладке HTTPS:

    1) установить галочку на Capture HTTPS CONNECTs

    2) установить галочку на Decrypt HTTPS traffic

    3) в появившемся окне “Trust the Fiddler Root certificate” кликнуть Yes

    4) в окне Security Warning кликнуть Yes

    5) в окне Add certificate to the Machine Root List? Нажать Yes

    6) в появившемся окне “Do you want to allow this app to make changes to your device?” выбрать Yes

    7) установить галочку Ignore server certificate errors (unsafe)

    Вкладка HTTPs
    Вкладка HTTPs
  6. В остальных вкладках оставить всё по дефолту, нажать ОК

  7. В верхнем тулбаре активировать Stream и Decode

Настройка iOS девайса для работы с Fiddler

  1. Открыть Settings

  2. Тапнуть пункт Wi-Fi

  3. Тапнуть иконку i у сети, у которой подключен девайс

  4. Проскроллить вниз и перейти в пункт Configure Proxy

  5. Выбрать Manual

  6. В поле Server ввести свой IP адрес

  7. В поле Port ввести свой Порт, тапнуть Save

  8. Открыть браузер и ввести в адресную строку http://ipv4.fiddler:{Port}. Например, если порт 8888, то ссылка будет выглядеть так  http://ipv4.fiddler:8888 ИЛИ ввести в адресную строку {IP}:{Port}, например, 192.168.162.202:8888

  9. Тапнуть на ссылку “FiddlerRoot certificate” и загрузить сертификат

  10. Перейти в Settings -> General -> Profile и установить скачанный сертификат

  11. Перейти в Settings -> General -> About -> Certificate Trust Settings и поставить чекбокс у нашего сертификата

Настройка Android девайса для работы с Fiddler

  1. Открыть Settings

  2. Тапнуть Wi-Fi

  3. Тапнуть и удерживать сеть Wi-Fi, к которой подключен девайс

  4. Выбрать Modify Network

  5. Выбрать “Show advanced options”

  6. Тапнуть Proxy и выбрать Manual

  7. В поле Server ввести свой IP адрес

  8. В поле Port ввести свой Порт, тапнуть Save

  9. Открыть браузер и ввести в адресную строку http://ipv4.fiddler:{Port}. Например, если порт 8888, то ссылка будет выглядеть так  http://ipv4.fiddler:8888 ИЛИ ввести в адресную строку {IP}:{Port}, например, 192.168.162.202:8888

  10. Тапнуть на ссылку “FiddlerRoot certificate”, сертификат загрузится на девайс

  11. Установка должна произойти автоматически, если сертификат не установился, то свайпнуть вниз и тапнуть иконку Settings

  12. Перейти Personal -> Security

  13. Перейти в Credential Storage и тапнуть “Install from storage”

  14. Тапнуть файл  FiddlerRoot.cer

  15. (Опционально) Ввести имя сертификата, например, FiddlerRoot

  16. Проверить эту конфигурацию можно Trusted credentials -> User, там должен отобразится установленный сертификат

Запросы HTTPs остаются зашифрованными

  1. Нужно здесь скачать плагин генерации сертификатов “CertMaker for iOS and Android”

  2. Перейти в Fiddler в Tools -> Options -> HTTPS и в Certificates generated by выбрать CertMarker

  3. Перезапустить Fiddler

  4. На девайс повторно скачать сертификат с http://ipv4.fiddler:{Port}, т.к. он будет генерироваться заново

  5. Выполнить установку сертификата на девайсе

После всех вышеописанных манипуляций Fiddler будет послушно декодировать необходимые HTTPs запросы с девайса.

Tags:
fiddler, decode, https, ios, android, тестирование

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.