Как настроить SSL-сертификаты с помощью Charles Web Proxy и новейшего эмулятора Android на Windows? - PullRequest
59 голосов
/ 20 октября 2010

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

emulator -http-proxy 127.0.0.1:8888 @NexusOne

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

Ответы [ 7 ]

70 голосов
/ 30 марта 2012

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

HOST - машина с Чарльзом и прокси-сервером КЛИЕНТ - Пользовательский компьютер, генерирующий трафик, который вы захватите

Хост-машина

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

Клиентский компьютер:

  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/

48 голосов
/ 12 ноября 2010

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

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

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

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

25 голосов
/ 08 марта 2014

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

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

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

  1. В Charles выберите Инструменты> Map Local
  2. Выберите «Добавить запись»"
  3. Введите значения для файла, который вы хотите заменить
  4. В поле« Локальный путь »выберите файл, который вы хотите вместо приложения загрузить
  5. Нажмите OK
  6. Убедитесь, что запись выбрана, и нажмите OK
  7. Запустите ваше приложение
  8. В «Заметках» вы увидите, что ваш файл загружается вместо реального
23 голосов
/ 04 февраля 2016

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

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

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

Charles SSL Proxying

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

enable HTTP Proxying

7 голосов
/ 15 октября 2013

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

Чарльз

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

Mac

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

iPhone

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

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

6 голосов
/ 03 декабря 2011

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

0 голосов
/ 13 ноября 2017

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

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

enter image description here enter image description here

Щелкните правой кнопкой мыши по названию вашего сайта на левой панели и выберите «Включить SSL-прокси» enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...