如何使用Charles Proxy分析来自Android 6模拟器的https流量

unl*_*101 7 macos https android android-virtual-device charles-proxy

我想分析我正在为Android开发的应用的https流量.
Charles Web Debugging Proxy是我想要使用的工具.我有以下系统配置:

  • Mac OS X El Capitan版本10.11.5
  • Android Studio 2.1.2
    • Build#AI-143.2915827,建于2016年5月26日
    • Android SDK工具25.2.0 rc1
    • 平台版本:API 24:Android 6.X(N)版本2
  • Charles Web Debugging Proxy v 3.11.5 30天试用版

我已经在StackOverflow上阅读过几篇文章,例如

但我还没达到目标.我走过了所有重要的步骤:

  • Charles Root证书已安装并添加到Max OS X Keychain并受到信任
    • 打开代理设置:代理 - >代理设置,代理选项卡,选中"启用透明HTTP代理"
    • 打开SSL代理设置:代理 - > SSL代理设置,SSL代理选项卡,选中"启用SSL代理"
  • Android Emulator从Android Studio Terminal开始 ~/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安装
  • 或者由Charles Proxy保存的证书,由openssl转换为.crt并安装在模拟设备上

我可以毫无问题地阅读Charles Proxy中的所有http流量.我也可以阅读https流量但 Charles只列出IP地址.有条目喜欢

https://173.194.65.188:5228
Run Code Online (Sandbox Code Playgroud)

所以ip地址没有解决.如何获得真正的https网址?我是否必须在某处为https激活DNS?

小智 3

我也发现这是一个问题。当我想通过 Charles Proxy 调试网络流量时,我的解决方案是切换到 Genymotion 模拟器。Genymotion 模拟器将为您提供 Charles 中的 url 与 ip。

在 Genymotion 模拟器中,您将 Wifi 代理主机名配置为“10.0.3.2”,代理端口输入“8888”(*假设端口 8888 是您在 Charles 代理中配置的侦听端口)。