我想分析我正在为Android开发的应用程序的https流量。
Charles Web调试代理是我要用于此目的的工具。我有以下系统配置:

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

  • 我已经阅读了StackOverflow上的几篇文章,例如
  • SSL Proxy/Charles and Android trouble
  • How to setup Android Lollipop emulator with Charles Proxy?

  • 但是我仍然没有达到我的目标。我完成了所有重要步骤:
  • Charles Root证书已安装并添加到Max OS X钥匙串(keychain)中,并且受信任
  • 打开代理设置:代理->代理设置,“代理”选项卡,选中“启用透明HTTP代理”
  • 打开SSL代理设置:代理-> SSL代理设置,“SSL代理”选项卡,选中“启用SSL代理”。
  • 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从android studio终端启动的
  • http://charlesproxy.com/getssl安装的证书
  • 或由Charles Proxy保存的证书,由openssl转换为.crt并安装在仿真设备


  • 我可以毫无问题地读取Charles Proxy中的所有http流量。我也可以阅读https流量,但 Charles仅列出IP地址。有像这样的条目
    https://173.194.65.188:5228
    

    因此,无法解析IP地址。如何获得真实的https URL?我是否必须在某处为https激活DNS?

    最佳答案

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

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

    关于android - 如何使用Charles Proxy分析来自Android 6模拟器的https流量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38505406/

    10-09 05:45