Как настроить 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 вам необходимо сделать следующее:

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

Хост машина

  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 для использования сокета, на котором размещается прокси-сервер (например: 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:

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

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

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

Ситуация немного изменилась в том, как Чарльз обеспечивает 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-прокси

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

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

Чарльз

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

макинтош

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

iPhone

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

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

Шаг установки сертификации, что бы здесь ни упоминалось, является правильным /questions/1595851/kak-nastroit-ssl-sertifikatyi-s-pomoschyu-charles-web-proxy-i-novejshego-emulyatora-android-na-windows/1595856#1595856

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

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

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

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

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

Другие вопросы по тегам