Как настроить SSL-сертификаты с помощью Charles Web Proxy и новейшего эмулятора Android на Windows?
Я хотел бы использовать веб-прокси Чарльза для работы с эмулятором Android в Windows. Я успешно настроил charles и запустил эмулятор с командной строки:
emulator -http-proxy 127.0.0.1:8888 @NexusOne
Я вижу трафик, исходящий от эмулятора Android в Charles, но проблема в том, что я работаю с живым API, который использует SSL, и я не уверен, как настроить Charles, чтобы позволить мне играть с данными, которые отправляются и получено. Мне известны две области, где SSL настроен в Charles (Proxy -> Proxy Settings -> SSL и Proxy -> Client SSL Certificates), но я не могу найти приличную документацию, которая позволила бы мне делать то, что я хочу делать, Кто-нибудь имеет опыт работы с Чарльзом или сертификатами в целом, кто может объяснить, как этого добиться. Может быть, учебник по сертификатам тоже подойдет, так как мне не хватает знаний о том, почему это так сложно.
7 ответов
В Charles выберите Proxy>>Proxy Settings и выберите вкладку SSL. Добавьте хост в список локаций.
Например, если ваш безопасный вызов идет на https://secure.example.com/, вы можете ввести secure.example.com или *.example.com.
После того как все вышеперечисленное выполнено, вам может потребоваться щелкнуть правой кнопкой мыши вызов в главном окне Charles и выбрать опцию SSL Proxying.
Надеюсь это поможет.
Для удаленного захвата трафика http или https с помощью charles вам необходимо сделать следующее:
ХОСТ - Машина с Чарльзом и прокси-клиентом. КЛИЕНТ. Компьютер пользователя, генерирующий трафик
Хост машина
- Установите полностью лицензионную версию Charles
- Прокси -> Настройки прокси -> отметьте "Включить Прозрачный HTTP Прокси"
- Прокси -> Настройки SSL-прокси -> установите флажок "Включить SSL-прокси"
- Прокси -> Настройки прокси SSL -> нажмите кнопку Добавить и введите * в оба поля
- Прокси -> Настройки контроля доступа -> Добавьте свою локальную подсеть (например: 192.168.2.0/24), чтобы разрешить всем машинам в локальной сети использовать прокси с другого компьютера.
- Может быть целесообразно настроить "инструмент автосохранения" в charles, это автоматически сохранит и повернет журналы charles.
Клиентская машина:
- Установите и постоянно принимайте / доверяйте SSL-сертификату charles
http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ - Настройте IE, Firefox и Chrome для использования сокета, на котором размещается прокси-сервер (например: 192.168.1.100:8888)
Когда я проверил это, я взял две строки чата HTTPS на Facebook (одна была для кого-то, а другая для).
Вы также можете захватывать трафик эмулятора Android таким образом, если вы запускаете эмулятор с:
emulator -avd <avd name> -http-proxy http://local_ip:8888/
Где LOCAL_IP - это IP-адрес вашего компьютера, а не 127.0.0.1, так как это IP-адрес эмулируемого телефона.
Источник: http://brakertech.com/capture-https-traffic-remotely-with-charles/
Для этого стоит пошаговая инструкция по выполнению этого на устройстве Android. Должно быть то же самое для iOS:
- Открой Чарльза
- Перейдите в Прокси> Настройки прокси> SSL
- Отметьте "Включить SSL-прокси"
- Выберите "Добавить местоположение" и введите имя хоста и порт (при необходимости).
- Нажмите ОК и убедитесь, что опция отмечена
- Загрузите сертификат Чарльза здесь: Сертификат Чарльза>;;
- Отправьте этот файл себе по электронной почте.
- Откройте электронную почту на вашем устройстве и выберите сертификат
- В "Название сертификата" введите все, что вы хотите
- Нажмите кнопку ОК, и вы должны получить сообщение, что сертификат был установлен
После этого вы сможете увидеть файлы SSL в Charles. Если вы хотите перехватить и изменить значения, вы можете использовать инструмент "Map Local", который действительно потрясающий:
- В Charles выберите Инструменты> Карта Local.
- Выберите "Добавить запись"
- Введите значения для файла, который вы хотите заменить
- В "Локальный путь" выберите файл, который вы хотите, чтобы приложение загружалось вместо
- Нажмите ОК
- Убедитесь, что запись выбрана и нажмите ОК
- Запустите ваше приложение
- В "Заметках" вы должны увидеть, что ваш файл загружается вместо реального
Ситуация немного изменилась в том, как Чарльз обеспечивает HTTPS-прокси
Сначала параметры установки сертификатов были перемещены в меню справки.
Help -> SSL Proxying -> Install Charles Root Certificate
Help -> SSL Proxying -> Install Charles Root Certificate in iOS Simulators
Во-вторых, начиная с iOS 9 вы должны предоставить NSAppTransportSecurity
вариант в вашем Info.plist
и если вы хотите, чтобы Чарльз работал как человек посередине, вы должны добавить:
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
как часть ваших доменов смотрите полный пример:
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
Причина в том (я полагаю), что Чарльз в какой-то момент общается в чистом http, выступая в роли человека на промежуточном https-сервере.
Последний шаг - активировать SSL-прокси для этого домена в Charles (щелкните правой кнопкой мыши домен и выберите "Включить SSL-прокси").
Вам также следует нажать "Установить сертификаты SSL для CA Charles.." в меню справки Charles. Более подробные инструкции см. По адресу http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/
Что сработало для меня - действительно нужно перенести на iPhone:
Чарльз
- Включить прозрачное прокси Http
- Включить SSL-прокси
- Щелкните правой кнопкой мыши на входящем запросе и выберите SSL прокси
макинтош
- Загрузите комплект сертификатов Charles CA http://www.charlesproxy.com/ssl.zip
- Послать себе электронную почту charles-proxy-ssl-proxying-certificate.crt
iPhone
- Включить http прокси для Чарльза на порту 8888
- Выберите и установите вложение электронной почты, доверяйте ему!
Вуаля, теперь вы можете просматривать зашифрованный трафик из домена, добавленного в прокси SSL
Шаг установки сертификации, что бы здесь ни упоминалось, является правильным /questions/1595851/kak-nastroit-ssl-sertifikatyi-s-pomoschyu-charles-web-proxy-i-novejshego-emulyatora-android-na-windows/1595856#1595856
Но если вам нужно индивидуально включать SSL-прокси для каждого нового URL-адреса, такого как я, то для включения для всех имен хостов просто введите * в список имен хостов и портов в настройках проксирования SSL следующим образом: