2016-07-21 21 views
4

Ich möchte den HTTPS-Verkehr der App analysieren, die ich für Android entwickle.
Charles Web Debugging Proxy ist das Tool, das ich dafür verwenden möchte. Ich habe folgendes System Configuartion:Analysieren von HTTPS-Verkehr von Android 6-Emulator mit Charles Proxy

  • Mac OS X El Capitan Version 10.11.5
  • Android Studio 2.1.2
    • Build # AI-143,2915827, am 26. Mai gebaut 2016
    • Android SDK-tools 25.2.0 rc1
    • Plattform Version: API 24: Android 6.X (N) Revision 2
  • Charles Web Debugging Proxy v 3.11.5 30-Tage-Testversion

Ich habe bereits mehrere Beiträge auf StackOverflow wie z.

Aber noch habe ich mein Ziel nicht erreichen. Ich ging durch alle wichtigen Schritte:

  • Charles Root-Zertifikat installiert und zu Max OS X-Schlüsselbund und vertrauenswürdigen
    • Öffnen Proxy-Einstellungen: Proxy -> Proxy-Einstellungen, Registerkarte Proxy, überprüfen Sie „Enable transparentes HTTP „Proxy-Einstellungen
    • Open SSL: Proxy -> SSL-Proxy-Einstellungen SSL Proxying Registerkarte Check‚Proxying aktivieren SSL Proxying‘
  • Android Emulator gestartet von Android Studio-Terminal von ~/Library/Android/sdk/tools/emulator -netdelay none -netspeed full -http-proxy <IP_FROM_DEVICE_WITH_CHARLES_PROXY_INSTALLED>:8888 -avd Nexus_5_API_23
  • Zertifikat von http://charlesproxy.com/getssl installiert
  • oder Zertifikat gespeichert von Charles Proxy, umgewandelt von OpenSSL und installiert auf emulierte Gerät .CRT

ich alle HTTP-Verkehr in Charles Proxy ohne Probleme lesen kann. Ich kann auch den https Verkehr lesen aber Charles listet nur IP-Adressen. Es gibt Einträge wie

https://173.194.65.188:5228 

Also die IP-Adressen sind nicht gelöst. Wie bekomme ich echte https URLs? Muss ich DNS für https irgendwo aktivieren?

+1

Ich habe das gleiche Problem mit Charles IP-Adressen anstelle der Host-Namen auflisten. Mac OS Sierra 10.12.2 (16C67), Android Studio 2.2.3, Emulator ist ein Nexus 6P API 23, Charles 3.11.6 (lizenziert) –

Antwort

2

Auch ich fand dies ein Problem. Meine Lösung, wenn ich den Netzwerkverkehr über Charles Proxy debuggen möchte, besteht darin, auf den Genymotion-Emulator umzuschalten. Der Genymotion-Emulator wird Ihnen die URL (s) vs. IP (s) in Charles geben.

Im Genymotion-Emulator konfigurieren Sie den Wifi-Proxy-Hostnamen auf '10 .0.3.2 'und den Proxy-Port auf' 8888 '(* vorausgesetzt, Port 8888 ist der Überwachungsport, den Sie in Charles Proxy konfiguriert haben).

+0

Aber der Genymotion-Emulator ist wirklich langsam im Vergleich zu Android. – DYS

0

Es gibt Anweisungen, die die Android-Emulator Arbeit mit Charles hier machen:

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

Es ist ziemlich unzuverlässig. Sie müssen den Emulator in den Flugzeugmodus ein- und ausschalten, wenn er funktionierte und dann nicht mehr funktioniert.

Hier sind die Schritte aus dem obigen Beitrag:

  1. den Emulator aus dem Terminal mit /{path to your android sdk directory}/tools/emulator -avd Nexus_5X_API_23 -http-proxy http://192.168.2.38:8888 starten, wo der -avd Wert der Name Ihres Emulator ist und der -http-proxy Wert ist die IP-Adresse von Charles: Hilfe> SSL-Proxying> Installieren Sie das Charles Root-Zertifikat auf einem mobilen Geräte- oder Remote-Browser.

  2. In Charles sollte Folgendes festgelegt werden: Proxy> Proxies 8888 Enable transparent proxying geprüft werden sollte; Proxy> macOS Proxy sollte

  3. Im Emulator überprüft werden, `Einstellungen> Mehr (Wireless> Mobilfunknetze> Access Points> T-Mobile USA (oder je nachdem, welcher andere Netzwerk ist vorhanden) gesetzt Proxy 10.0.2.2 und den Port 8888

  4. im Emulator sollte Settings > Developer Options > Use legacy DHCP Client sein.

  5. im Emulator, schalten den Flugmodus ein- und ausschalten

Sehen Sie auch dies, wenn Sie Probleme haben, Charles unter Android 7 (API 24) und höher arbeiten zu lassen. https://android.jlelse.eu/android-nougat-charlesing-ssl-network-efa0951e66de