2016-07-21 7 views
4

Я хочу проанализировать трафик https приложения, которое я разрабатываю для Android.
Прокси-сервер Charles Web Debugging - это инструмент, который я хочу использовать для этого. У меня есть следующие системы configuartion:Как анализировать трафик https с эмулятора Android 6 с помощью Charles Proxy

  • Mac OS X El Capitan Версия 10.11.5
  • Android Studio 2.1.2
    • Сложение # AI-143.2915827, построенный на 26 мая, 2016
    • Android SDK Tools 25.2.0 RC1
    • Версия платформы: API 24: Android 6.X (N) пересмотр 2
  • Charles Web Debugging Proxy v 3.11.5 30-дневная пробная версия

Я уже прочитал несколько сообщений о StackOverflow, например,

Но до сих пор я не достигла своей цели. Я прошел через все важные шаги:

  • Чарльз корневой сертификат установлен и добавлен в Max OS X Keychain и доверенный
    • Открыть настройки прокси-сервера: Прокси -> Настройки прокси, прокси Tab, установите флажок «Включить прозрачный HTTP проксирование»
    • Открыть Настройки SSL прокси: Proxy -> SSL Proxy Settings, вкладка SSL проксирование, Check„включить SSL прокси-соединения“
  • Android Emulator начал с Android студии терминала по ~/Library/Android/sdk/tools/emulator -netdelay none -netspeed full -http-proxy <IP_FROM_DEVICE_WITH_CHARLES_PROXY_INSTALLED>:8888 -avd Nexus_5_API_23
  • сертификат устанавливается с http://charlesproxy.com/getssl
  • или сертификат сохраненного Чарльзом Proxy, преобразованные в .CRT по OpenSSL и установить на сэмулированных

Я могу читать весь трафик HTTP в Charles Proxy без каких-либо проблем. Я также могу читать https-трафик , но Чарльз перечисляет только IP-адреса. Есть такие записи, как

https://173.194.65.188:5228 

Таким образом, адреса ip не разрешены. Как получить реальные URL-адреса https? Нужно ли мне активировать DNS для https?

+1

У меня такая же проблема, когда Чарльз перечисляет IP-адреса вместо имен хостов. Mac OS Sierra 10.12.2 (16C67), Android Studio 2.2.3, эмулятор - это Nexus 6P API 23, Charles 3.11.6 (лицензия) –

ответ

2

Я тоже нашел, что это проблема. Мое решение, когда я хочу отлаживать сетевой трафик через Charles Proxy, - это перейти к эмулятору Genymotion. Эмулятор Genymotion предоставит вам url (s) против ip (s) в Чарльзе.

В эмуляторе Genymotion вы настраиваете имя прокси-сервера Wifi на «10 .0.3.2» и порт прокси введите «8888» (* если порт 8888 - это порт прослушивания, который вы настроили в Charles Proxy).

+0

Но эмулятор Genymotion очень медленный по сравнению с Android. – DYS

0

Есть инструкции, которые делают Android работы эмулятора с Чарльзом здесь:

https://stackoverflow.com/a/35577864/2832027

Это весьма ненадежно. Вы должны поместить эмулятор в и из режима полета, если он работает, а затем перестает работать.

Вот шаги от поста выше:

  1. запустить эмулятор от терминала с /{path to your android sdk directory}/tools/emulator -avd Nexus_5X_API_23 -http-proxy http://192.168.2.38:8888 где значение -avd это имя вашего эмулятора и значение -http-proxy является IP-адрес от Чарльза: Справка> SSL Proxying> Установить Charles Root Certificate на мобильный Устройство или удаленный браузер.

  2. В Чарльзу, следующие должны быть установлены: Proxy> Доверенные 8888 Enable transparent proxying должны быть проверены ; Proxy> MacOS Proxy должен быть проверен

  3. В эмуляторе, `Настройки> Дополнительно (Wireless> Сотовые сети> Точки доступа> T-Mobile в зависимости от того другой сети есть США (или) установить прокси-сервер для 10.0.2.2 и порт 8888

  4. в эмуляторе, Settings > Developer Options > Use legacy DHCP клиент должен быть включен.

  5. в эмуляторе, включите режим полета и выключения

Также смотрите это, если у вас возникли проблемы с работой Чарльза на Android 7 (API 24) и выше. https://android.jlelse.eu/android-nougat-charlesing-ssl-network-efa0951e66de