Перехват HTTPS на iPhone,
Всё происходит на телефоне: установите приложение, доверьте его сертификат, выберите хосты для расшифровки и включите VPN. Расшифрованные запросы появляются в вашем дашборде секунду спустя — по Wi-Fi или по сотовой сети.
Обычный способ прочитать HTTPS iPhone — настольный прокси: ноутбук в той же Wi-Fi-сети, ручная настройка прокси на телефоне, сертификат, установленный вручную, и сессия, которая обрывается, как только вы переходите на сотовую сеть. Busymate DevTools убирает ноутбук из этой цепочки. Приложение запускает общесистемный движок перехвата прямо на устройстве с помощью NetworkExtension от Apple, расшифровывает только те хосты, которые вы внесли в список, и передаёт каждый запрос в веб-дашборд, который можно открыть где угодно.
Это руководство проведёт вас от пустого телефона до первого расшифрованного запроса. Используется режим VPN — туннель на устройстве, который охватывает и Wi-Fi, и сотовую сеть. Если вы предпочитаете перехват через Wi-Fi-прокси, в приложении есть и режим PAC; он упоминается там, где это важно, но для этого руководства он не нужен.
Что вам
Без компьютера, без кабеля, без джейлбрейка. Четыре вещи, и все они на телефоне или во вкладке браузера.
iPhone или iPad с актуальной iOS и доступом к App Store.
Аккаунт Busymate — войдите через Apple или по электронной почте и паролю. Именно вход связывает телефон с вашим дашбордом.
Две минуты в приложении «Настройки», чтобы установить профиль сертификата и включить для него полное доверие.
Имена хостов API, который вы хотите читать. Расшифровываются только добавленные хосты; всё остальное проходит нетронутым.
Делайте
Шесть шагов, в этом порядке. Карточка готовности в приложении сама сообщит, когда часть с сертификатом выполнена, так что гадать не придётся.
- 01
Установите приложение и примите согласие на перехват
Установите Busymate DevTools из App Store и откройте его. При первом запуске появится экран согласия на перехват сетевого трафика. Apple требует его, потому что приложение анализирует трафик устройства, и приложение не будет ни спариваться, ни перехватывать, пока вы не согласитесь. Это одноразовый барьер: если что-либо когда-нибудь попытается запустить туннель без вашего согласия, тот же экран появится снова.
- 02
Войдите — это и спаривает телефон
Экран входа закрывает приложение, пока телефон не спарен. Выберите «Вход с Apple» или введите почту и пароль. Отдельного шага активации и кода для ввода нет: приложение обменивает вашу сессию на долгоживущие учётные данные устройства, сохраняет их в связке ключей устройства и закрывает экран.
Откройте дашборд в любом браузере и посмотрите вкладку Devices — телефон уже там и показан как Online. Переименовать его можно с любой стороны; имя синхронизируется в обе стороны в реальном времени, а устройство сохраняет свою идентичность при переименовании.


- 03
Установите профиль сертификата
Внизу главного экрана находится карточка готовности. Сейчас на ней жёлтый щит и надпись Not Ready, потому что телефон ещё не доверяет сертификату, которым приложение расшифровывает HTTPS. Коснитесь карточки, чтобы открыть шаги настройки, затем нажмите Download.
Приложение откроет Safari с профилем конфигурации. iOS покажет уведомление о загруженном профиле; откройте «Настройки», коснитесь этого уведомления вверху и нажмите «Установить» для профиля Busymate DevTools. Это тот же профиль, который можно скачать вручную по адресу ниже.
Профиль сертификата, который приложение открывает за вас texthttps://busymate.net/ca.mobileconfig - 04
Включите полное доверие к сертификату
Установить профиль недостаточно. iOS требует отдельного явного переключателя доверия для любого корневого сертификата, установленного пользователем, и именно этот шаг чаще всего пропускают. Откройте «Настройки», затем «Основные», затем «Об этом устройстве», затем «Доверие сертификатам» и включите Busymate DevTools в списке полного доверия.
Вернитесь в приложение. Пока открыт экран настройки, оно проверяет доверие каждые несколько секунд и при каждом возвращении на передний план, так что через секунду-две карточка готовности станет зелёной с надписью Ready. На главном экране вместо сообщения о незавершённой настройке появятся элементы управления перехватом. Доверие сохраняется при переустановке приложения — это делается один раз на телефон.


- 05
Добавьте хосты, которые нужно расшифровывать
Доверие к сертификату не открывает всё подряд. Приложение расшифровывает только домены из своего списка SSL proxy; остальные соединения проходят, но остаются зашифрованными и показываются с закрытым замком — только имя хоста и счётчик запросов. Откройте список через шестерёнку на карточке готовности — Settings, затем Tunnel, затем SSL Proxying —, нажмите Add Domain и введите хост.
Простое имя хоста совпадает ровно с этим хостом. Звёздочка с точкой в начале совпадает с родительским доменом и всеми поддоменами любой глубины — обычно именно это и нужно для API. В том же разделе Tunnel есть два связанных переключателя: Inspect All Requests записывает все соединения телефона, а не только хосты из списка, а MITM All Hosts расшифровывает все HTTPS-хосты — это тяжелее, и лучше держать его выключенным без необходимости. Ignore Hosts полностью убирает из ленты фоновый шум вроде телеметрии.
Управлять списком можно и из дашборда: отредактируйте там домены SSL proxy устройства, и изменение сразу уйдёт на телефон — коллега может добавить хост за вас, не прикасаясь к устройству.


- 06
Включите VPN и читайте трафик
На главном экране в строке Status находится переключатель VPN. Включите его. Вы увидите короткое Syncing, затем Connected; значок приложения перейдёт в устойчивое зелёное кольцо с бейджем VPN, и такой же бейдж VPN появится в строке состояния iOS. С этого момента каждый запрос телефона, по Wi-Fi или сотовой сети, передаётся в ваш дашборд, а туннель остаётся активным при переключении между приложениями.
Воспользуйтесь приложением, которое отлаживаете. Затем посмотрите в дашборд: новые строки появляются в верхней части ленты в момент события, по одной на запрос, а боковая панель устройств позволяет сосредоточиться только на этом телефоне. Нажмите на любую строку, чтобы открыть полный запрос и ответ — заголовки и тело, JSON в читаемом виде. На самом телефоне Settings, затем Tools, затем Network Log показывает ту же запись, сгруппированную по доменам, с открытым замком у каждого хоста, который вы выбрали для расшифровки.


Что может
Почти любая застрявшая настройка — один из этих пяти случаев, и у каждого есть заметный признак.
Карточка готовности остаётся жёлтой после установки профиля
Полное доверие всё ещё выключено. Установка профиля и переключатель доверия — два разных шага в iOS; вернитесь в «Настройки», «Основные», «Об этом устройстве», «Доверие сертификатам» и включите Busymate DevTools. Как только это произойдёт, карточка сама станет зелёной.
У хоста закрытый замок и нет тела
Этого хоста нет в списке SSL proxy, или вы добавили его при работающем VPN. Добавьте его, затем выключите и снова включите VPN, чтобы туннель подхватил новый список — перехвату в режиме PAC перезапуск не нужен, а туннелю нужен.
Отлаживаемое приложение отказывается подключаться, как только хост расшифрован
Приложение закрепляет собственный сертификат и отвергает любой другой — обойти это не может никакой перехват на устройстве. Уберите хост из списка, чтобы он снова проходил зашифрованным, и прочитайте руководство о pinning, чтобы узнать, что по-прежнему можно увидеть.
Карточка PAC показывает Unavailable — VPN active
Это ожидаемо, а не ошибка. VPN и PAC взаимоисключающи; пока туннель поднят, iOS скрывает состояние Wi-Fi-прокси, и приложение честно об этом сообщает. Выключите VPN, если хотите вместо него использовать PAC.
В дашборд вообще ничего не приходит
Проверьте три условия по порядку: согласие принято, телефон показан как Online на вкладке Devices, переключатель Status показывает Connected. Если приложение при большом трафике ненадолго не смогло связаться с бэкендом, оно покажет небольшой баннер с числом потерянных записей — тихой потери не бывает.
Частые
Мне правда не нужен Mac, кабель или настройка прокси?
Верно. Перехват, расшифровка и передача выполняются на телефоне. Компьютер участвует, только если вы решите смотреть дашборд на нём — а для этого подойдёт и браузер телефона.
Перехватывается ли сотовый трафик и трафик других приложений?
В режиме VPN — да: туннель на устройстве охватывает все приложения телефона, по Wi-Fi и по сотовой сети. Альтернатива PAC охватывает только Wi-Fi, потому что это настройка Wi-Fi-прокси, а не туннель.
Расшифровывается ли всё после того, как сертификату доверяют?
Нет. Доверие лишь делает расшифровку возможной. Приложение расшифровывает хосты из вашего списка SSL proxy и ничего больше, если только вы намеренно не включите MITM All Hosts. Приложения с закреплённым сертификатом остаются зашифрованными в любом случае.
Ваш первый расшифрованный запрос —
Установите приложение, доведите карточку готовности до зелёного цвета и смотрите, как трафик телефона появляется в вашем дашборде.