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

标签 android macos https avd charles-proxy

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

  • 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 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

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

最佳答案

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

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

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

相关文章:

html - 如何检测滚动条是否占用 Chrome for OS X 中的空间?

Rails 2.3.14 上的 mysql 连接错误

c++ - 如何让 Qt Creator 添加 CEF 框架到 Mac OS X 上的 DEST_DIR?

javascript - SSL 站点不会从其他域加载非 SSL 脚本

php - 使用 PHP 在 Mysql 中数组到字符串错误

Android ADT Eclipse 布局编辑器给出 StackOverflowErrors

直接从域注册商使用 HTTPS 重定向域

ssl - 我如何强制 Disqus 对所有请求使用 HTTPS?

java - 我的 R.java 文件中的错误无法解决

java - 防止来自 HttpURLConnection 的未经请求的 CONNECT 方法调用