Мобильные устройства

Трафик с iOS и Android — с реальных устройств, из симулятора iOS и из эмуляторов Android — тоже можно перехватывать. Для каждого случая есть свой мастер в меню SSL Сертификат: он делает столько, сколько позволяет платформа, и в конце открывает на устройстве тестовую страницу, чтобы убедиться, что трафик доходит.

Независимо от платформы в итоге должны выполняться два условия:

  1. Корневой сертификат приложения установлен на устройстве в том хранилище, которому доверяет отлаживаемая программа.
  2. Трафик устройства попадает в прокси — либо потому что устройство использует сетевой стек компьютера, либо потому что его прокси указывает на адрес и порт компьютера.

Запустите прокси до работы с мастером: и доставка сертификата, и проверка идут через него.

Root и jailbreak не нужны, но на Android без root круг приложений, которые будут доверять сертификату, ограничен.

Симулятор iOS

Доступно на macOS, нужны Xcode Command Line Tools и хотя бы один запущенный симулятор.

Сертификат попадает в связку ключей macOS, а оттуда — в каждый запущенный симулятор; после этого симуляторы перезапускаются, чтобы новые настройки доверия применились во всех процессах. Симулятор использует сетевой стек Mac, поэтому прокси на нём настраивать не нужно.

Если HTTPS-запросы всё равно остаются в ожидании, включите доверие на симуляторе вручную: Настройки → Основные → Об этом устройстве → Доверие сертификатам.

Процесс установки

Если HTTPS всё ещё не расшифровывается

  • Приложение использует certificate pinning. Добавьте его хост в список исключений (см. Настройки), чтобы оно продолжало работать, либо отлаживайте сборку, которая доверяет вашему CA.
  • На Android Chrome в ряде проверок опирается на собственное хранилище корневых сертификатов — проверяйте перехват своим приложением, а не Chrome.
  • Сертификат установлен, но доверие не включено (iOS) или он лежит в пользовательском хранилище, а приложение доверяет только системному (Android).
  • Не получается именно на iOS — см. iOS: профиль установлен, но сертификату нет доверия.
  • Не получается именно на Android — см. Android не доверяет сертификату прокси.