Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: MartynОтветов: 8

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

emulator -http-proxy 127.0.0.1:8888 @NexusOne

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

  • Что такое команда эмулятора? Как ты это используешь? Jacek Kwiecień 07.02.2016

androidsslssl-certificatecharles-proxywebproxy

Ответы

Ответ 1 · рейтинг 50 · bcj19

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

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

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

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

Ответ 2 · рейтинг 76 · brakertech

Для удаленного захвата трафика 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/

Ответ 3 · рейтинг 27 · bkurzius

Вот пошаговые инструкции, как сделать это на устройстве 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. Вы должны увидеть в "Заметках", что ваш файл загружается вместо живого.

Ответ 4 · рейтинг 23 · apouche

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

Ответ 5 · рейтинг 7 · Vineet Bhatia

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

Ответ 6 · рейтинг 7 · gini

Что сработало для меня - действительно стоит перенести на 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.

Ответ 7 · рейтинг 2 · ishandutta2007

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

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

Ответ 8 · iPhoneDeveloper

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы