Как настроить SSL-сертификаты с помощью Charles Web Proxy и последней версии эмулятора Android в Windows?

Я хотел бы использовать веб-прокси Charles для работы с эмулятором Android в Windows. Я успешно настроил charles и запустил эмулятор из командной строки:

emulator -http-proxy 127.0.0.1:8888 @NexusOne

Я вижу трафик, исходящий от эмулятора Android в Charles, но проблема в том, что я работаю с живым API, который использует SSL, и я не уверен, как настроить Charles, чтобы я мог играть с отправляемыми данными и получила. Мне известны две области, в которых SSL настроен в Charles (Прокси -> Настройки прокси -> SSL и прокси -> Клиентские SSL-сертификаты), но я не могу найти достойной документации, которая позволила бы мне делать то, что я хочу делать. . Есть ли у кого-нибудь опыт работы с Чарльзом или сертификаты в целом, кто может объяснить, как этого добиться. Может быть, было бы неплохо получить основы сертификатов, поскольку мне, кажется, не хватает знаний о том, почему это так сложно.


person Martyn    schedule 20.10.2010    source источник
comment
Что такое команда эмулятора? Как ты это используешь?   -  person Jacek Kwiecień    schedule 07.02.2016


Ответы (8)


В Charles перейдите в Прокси >> Настройки прокси и выберите вкладку SSL. Добавьте свой хост в список локаций.

Например, если ваш защищенный вызов направляется на https://secure.example.com, вы можете ввести безопасный. example.com или * .example.com.

После того, как указанное выше будет выполнено, вам может потребоваться щелкнуть правой кнопкой мыши вызов в главном окне Charles и выбрать опцию SSL Proxying.

Надеюсь это поможет.

person bcj19    schedule 12.11.2010
comment
2017: Не забудьте установить SSL-сертификаты Charles: CharlesProxy.com/getssl - person salonMonsters; 24.02.2017
comment
@salonMonsters По какой-то причине этот сайт ничего не делает на моем эмуляторе Android ... просто говорит, что это было бы, если бы ОС была настроена так, чтобы разрешать сертификаты - person TahoeWolverine; 10.08.2017
comment
Я не вижу вкладки SSL в настройках прокси - person Hlung; 17.08.2017
comment
@Hlung Вы должны увидеть это прямо в меню прокси в настройках SSL-проксирования. - person rurouniwallace; 29.08.2017
comment
Эти инструкции старые / неверные. Правильный путь - Прокси ›Настройки SSL-прокси .... Подтверждено v4.2.7. macOS. Работает с ознакомительной версией. - person Jonny; 28.02.2019

Для удаленного захвата трафика http или https с помощью charles вам необходимо сделать следующее:

ХОСТ - машина, на которой работает Charles и на которой размещается прокси. КЛИЕНТ - машина пользователя, генерирующая трафик, который вы собираете.

Хост-машина

  1. Установить полностью лицензионную версию charles
  2. Прокси -> Настройки прокси -> установите флажок «Включить прозрачное HTTP-проксирование».
  3. Прокси -> Настройки проксирования SSL -> установите флажок «Включить проксирование SSL».
  4. Прокси -> Настройки проксирования SSL -> нажмите кнопку Добавить и введите * в оба поля.
  5. Прокси -> Настройки контроля доступа -> Добавьте свою локальную подсеть (например, 192.168.2.0/24), чтобы разрешить всем машинам в вашей локальной сети использовать прокси с другой машины.
  6. Было бы целесообразно настроить «инструмент автосохранения» в таблицах, при этом журналы будут автоматически сохраняться и вращаться.

Клиентская машина:

  1. Установите и навсегда принимайте / доверяйте SSL-сертификату Charles
    http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/.
  2. Настройте IE, Firefox и Chrome на использование сокета, на котором charles размещает прокси (например, 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/

person brakertech    schedule 30.03.2012
comment
Install and permanently accept/trust the charles SSL certificate Эм, это небезопасно, не так ли? Я бы предпочел не позволять никому навязывать мне MITM. - person Salman von Abbas; 21.04.2014
comment
Нашел решение для этого: codeblog.shape.dk/blog/2014/01/06/ - person Salman von Abbas; 21.04.2014
comment
В моей версии прокси Charles нет вкладки SSL ... (v4) - person fgysin; 19.10.2016
comment
@fgys на вкладке есть собственная страница настроек. Его можно открыть через прокси - ›Настройки SSL-прокси. - person Henning; 19.02.2018
comment
Обновление того, что написал @SalmanAbbas: на самом деле больше не представляет угрозы безопасности постоянно принимать / доверять сертификату, поскольку Чарльз однозначно его генерирует. Это означает, что вы даже можете доверять корневому сертификату SSL на работающих устройствах без особого дополнительного риска. - person Aron; 13.07.2018

Вот пошаговые инструкции, как сделать это на устройстве Android. Должно быть то же самое для iOS:

  1. Открыть Чарльз
  2. Перейдите в Прокси> Настройки прокси> SSL.
  3. Установите флажок «Включить SSL-проксирование».
  4. Выберите «Добавить местоположение» и введите имя хоста и порт (при необходимости).
  5. Нажмите ОК и убедитесь, что опция отмечена.
  6. Загрузите сертификат Charles здесь: Charles cert>
  7. Отправьте этот файл себе по электронной почте.
  8. Откройте письмо на своем устройстве и выберите сертификат.
  9. В поле «Назовите сертификат» введите все, что хотите.
  10. Нажмите ОК, и вы должны получить сообщение о том, что сертификат был установлен.

После этого вы должны увидеть файлы SSL в Charles. Если вы хотите перехватить и изменить значения, вы можете использовать инструмент «Map Local», который действительно хорош:

  1. В Charles перейдите в Инструменты> Местная карта
  2. Выберите «Добавить запись».
  3. Введите значения для файла, который хотите заменить
  4. В «Локальном пути» выберите файл, который вы хотите, чтобы приложение загружало вместо него.
  5. Нажмите ОК.
  6. Убедитесь, что запись выбрана, и нажмите ОК.
  7. Запустите ваше приложение
  8. Вы должны увидеть в «Заметках», что ваш файл загружается вместо живого.
person bkurzius    schedule 07.03.2014
comment
Вместо того, чтобы отправить сертификат на устройство по электронной почте, я просто зашел на страницу charlesproxy.com/charles.crt в браузере. на устройстве, и он работал нормально. - person gMale; 22.10.2014
comment
Это устаревшая документация для более старой версии Charles - person Radu; 17.06.2015
comment
Однако старую версию Charles по-прежнему можно найти здесь: charles.software.informer.com/download < / а> - person Radu; 17.06.2015

Ситуация немного изменилась в том, как Чарльз обеспечивает проксирование HTTPS.

Сначала параметры установки сертификатов были перенесены в меню справки.

Help -> SSL Proxying -> Install Charles Root Certificate
Help -> SSL Proxying -> Install Charles Root Certificate in iOS Simulators

Чарльз SSL-прокси

Во-вторых, начиная с 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-проксирование»).

включить HTTP-проксирование

person apouche    schedule 04.02.2016

Вам также следует щелкнуть «Установить SSL-сертификаты Charles CA ..» в меню «Справка Charles». См. Более подробные инструкции по адресу http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/

person Vineet Bhatia    schedule 03.12.2011

Что сработало для меня - действительно стоит перенести на iPhone:

Чарльз

  1. Включить прозрачное прокси Http
  2. Включить SSL-проксирование
  3. Щелкните правой кнопкой мыши входящий запрос и выберите SSL-проксирование.

Mac

  1. Загрузите пакет сертификатов Charles CA http://www.charlesproxy.com/ssl.zip
  2. Отправьте себе письмо по электронной почте charles-proxy-ssl-proxying-certificate.crt

айфон

  1. Включите http-прокси для Charles на порту 8888
  2. Выберите и установите вложение электронной почты, да, поверьте!

Вуаля, теперь вы можете просматривать зашифрованный трафик из домена, добавленного в проксирование SSL.

person gini    schedule 15.10.2013

Шаг установки сертификации, что бы здесь ни упоминалось, является правильным https://stackoverflow.com/a/35200795/865220

Но если вам нужно индивидуально включать SSL-прокси для каждого нового URL-адреса, такого как я, то для включения для всех имен хостов просто введите * в список имен хостов и портов в настройках проксирования SSL следующим образом:

введите описание изображения здесь

person ishandutta2007    schedule 01.12.2019

Эти вещи мне помогли

  1. Зайдите в прокси -> Настройки прокси SSL -> Добавить
  2. Добавьте сюда название вашего сайта и укажите номер порта как 8888

введите здесь описание изображения  введите описание изображения здесь

  1. Щелкните правой кнопкой мыши имя вашего сайта на левой панели и выберите «Включить SSL-проксирование»  введите описание изображения здесь

Надеюсь, это поможет кому-то там.

person iPhoneDeveloper    schedule 13.11.2017