Как настроить SSL-сертификаты с помощью Charles Web Proxy и последний эмулятор Android на Windows?
-
09-10-2019 - |
Вопрос
Я хотел бы использовать Charles Web Proxy для работы с эмулятором Android в Windows. Я успешно настроил Чарльз и запустил эмулятор с помощью командной строки:
emulator -http-proxy 127.0.0.1:8888 @NexusOne
Я могу увидеть трафик, исходящий из эмулятора Android в Чарльзе, но проблема в том, что я разрабатываю против Live API, который использует SSL, и я не уверен, как настроить Чарльз, чтобы позволить мне играть о данных, которые отправляются и получила. Я знаю о двух областях, где SSL настроен в Charles (Proxy -> Настройки прокси -> SSL и Proxy -> Клиентские сертификаты SSL), но я не могу найти приличную документацию, которая позволила мне сделать то, что я хочу сделать Отказ У кого-нибудь есть опыт работы с Чарльзом или сертификатами в целом, кто может объяснить, как это достичь. Может быть, грунтовка по сертификатам тоже будет хорошо, так как мне не хватает знаний о том, почему это так сложно.
Решение
В Charles перейдите в Proxy >> Настройки прокси и выберите вкладку SSL. Добавьте свой хост в список местоположений.
Например, если ваш безопасный звонок собирается https://secure.example.com., вы можете ввести Secure.example.com, или * .example.com.
Как только выше указано выше, вам может потребоваться щелкнуть правой кнопкой мыши на вызове в окне Main Charles и выберите опцию Proxing SSL.
Надеюсь это поможет.
Другие советы
Для удаленного захвата трафика HTTP или HTTPS с Charles вам нужно сделать следующее:
Хост - машина работает Charles и хостинг Proxy Client - машина пользователя, генерируя трафик, который вы будете захватывать
Хост машина
- Установить полностью лицензированную версию Charles
- Proxy -> Настройки прокси -> Проверьте «Включить прозрачный HTTP-прокси»
- Proxy -> Параметры прокси-сигнала SSL -> Проверьте «Включить SSL Proxing»
- Proxy -> Настройки Proxing SSL -> Нажмите кнопку «Добавить» и введите * в обоих полях
- Proxy -> Параметры контроля доступа -> Добавить локальную подсеть (EX: 192.168.2.0/24), чтобы авторизовать все машины в локальной сети, чтобы использовать прокси из другой машины
- Может быть целесообразным настроить «Auto Save Tool» в Charles, это автоматически сохраняет и повернут журналы Charles.
Клиентский автомат:
- Установите и навсегда принять / доверять Charles SSL сертификат
http://www.charlesproxy.com/documentation/using-Charles/ssl-certificates/ - Настроить IE, Firefox и Chrome для использования розетки Charles проводит прокси на (например, 192.168.1.100:8888)
Когда я проверял это, я поднял две строки на Facebook HTTPS Chat (одна была линия для кого-то, а другая)
Вы также можете захватить трафик эмулятора 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-remotey-with-Charles/
Для того, что стоит здесь, - это шаг за шагом инструкции по выполнению этого на устройстве Android. Должно быть то же самое для iOS:
- Открытый Чарльз
- Перейти к прокси> Настройки прокси> SSL
- Проверьте «Включить SSL прокси»
- Выберите «Добавить местоположение» и введите имя хоста и порт (при необходимости)
- Нажмите OK и убедитесь, что параметр проверяется
- Скачать Charles Cert отсюда: Чарльз Сертинг>
- Отправьте это файл на себя в электронном письме.
- Откройте электронное письмо на своем устройстве и выберите сертификат
- В «Имя сертификата» введите все, что вы хотите
- Нажмите OK, и вы должны получить сообщение о том, что сертификат был установлен
Вы должны иметь возможность увидеть файлы SSL в Charles. Если вы хотите перехватить и изменить значения, вы можете использовать инструмент «Map Local», который действительно потрясающий:
- В Charles Go в Tools> Map 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 для этого домена в Чарльзе (щелкните правой кнопкой мыши на домене и выберите «Включить SSL»)
Что сработало для меня - действительно должен быть перемещен на iPhone:
Чарльз
- Включить прозрачный HTTP-прокси
- Включить SSL прокси
- Щелкните правой кнопкой мыши на входящий запрос и выберите «SSL»
Mac
- Скачать Charles CA сертификат пакет http://www.charlesproxy.com/ssl.zip.
- Отправить сам Charles-Proxy-SSL-Proxing-Service.Crt
iPhone
- Включить HTTP прокси для Чарльза на порту 8888
- Выберите и установите вложение электронной почты, да доверьтесь!
Вуаля, теперь вы можете просматривать зашифрованный трафик из домена, добавленного в SSL, проксию
Вы также должны нажать «Установить Charles Ca SSL-сертификаты.» От меню Harles Help. Смотрите более подробные инструкции на http://blog.noodlewerk.com/general/tuTorial-using-Charles-Proxy-To-debug-https-communication-between-server-and-ios-apps/