返回

Android Charles HTTPS 抓包:突破系统限制,轻松实现抓包自由!

Android

在 Android 13 及更高版本系统中使用 Charles 轻松抓取 HTTPS 请求

对于 Android 开发者来说,Charles 是一款必不可少的工具,它可以帮助我们轻松抓取和分析网络请求。然而,随着 Android 系统的不断升级,在高版本系统中,HTTPS 数据请求的内容通常是无法查看到的。本文将详细介绍如何突破系统限制,在 Android 13 及更高版本系统中使用 Charles 抓取 HTTPS 请求。

突破系统限制

Android 9.0 及以上版本引入了 TLS 1.3 协议,而 Charles 默认使用的是 TLS 1.2 协议。为了突破系统限制,我们需要将 Charles 的 TLS 协议升级到 TLS 1.3。

  1. 打开 Charles,点击 "Proxy" -> "SSL Proxying Settings"
  2. 在 "SSL Proxying" 选项卡中,勾选 "Enable SSL Proxying"
  3. 在 "Root Certificates" 选项卡中,点击 "Add" 按钮,选择 "Create a self-signed root certificate"
  4. 在 "Common Name" 字段中,输入 "Charles Proxy CA"
  5. 点击 "Create" 按钮,然后关闭 Charles

安装证书

接下来,我们需要将 Charles 的根证书安装到 Android 设备上。

  1. 将 Android 设备连接到电脑
  2. 在电脑上打开文件管理器,找到 Charles 的根证书文件
  3. 将该文件复制到 Android 设备的存储空间中
  4. 在 Android 设备上,打开 "设置" -> "安全" -> "更多安全设置" -> "加密和凭据" -> "安装证书"
  5. 选择 "设备存储",然后选择 Charles 的根证书文件
  6. 输入证书名称,然后点击 "确定"

配置 Charles

完成以上步骤后,我们需要配置 Charles 以使用 TLS 1.3 协议。

  1. 打开 Charles,点击 "Proxy" -> "SSL Proxying Settings"
  2. 在 "SSL Proxying" 选项卡中,勾选 "Enable SSL Proxying"
  3. 在 "Client Certificates" 选项卡中,点击 "Add" 按钮,选择 "Charles Proxy CA"
  4. 点击 "OK" 按钮,然后关闭 Charles

抓取 HTTPS 请求

现在,我们就可以开始抓取 HTTPS 请求了。

  1. 打开 Charles,点击 "Proxy" -> "Start SSL Proxying"
  2. 在 Android 设备上,打开需要抓包的应用程序
  3. 在 Charles 中,就可以看到抓取到的 HTTPS 请求了

常见问题

  1. 为什么在抓取 HTTPS 请求时会出现 "ERR_SSL_PROTOCOL_ERROR" 错误?

答:这可能是因为 Android 设备上的系统时间不正确。请确保 Android 设备上的系统时间与电脑上的系统时间一致。

  1. 为什么在抓取 HTTPS 请求时会出现 "ERR_CONNECTION_RESET" 错误?

答:这可能是因为 Charles 的代理端口与 Android 设备上的代理端口不一致。请确保 Charles 的代理端口与 Android 设备上的代理端口一致。

  1. 如何获取 Charles 的根证书文件?

答:默认情况下,Charles 的根证书文件位于 "C:\Program Files\Charles\bin\charles-ssl-proxying-certificate.pem"。

  1. 如何配置 Android 设备的代理设置?

答:在 Android 设备上,打开 "设置" -> "网络和互联网" -> "代理",然后配置代理设置。

  1. Charles 是否支持其他 TLS 协议版本?

答:是的,Charles 支持 TLS 1.0、TLS 1.1、TLS 1.2 和 TLS 1.3。

结论

通过本文介绍的方法,我们可以在 Android 13 及更高版本系统上轻松使用 Charles 抓取 HTTPS 请求。希望这篇文章能够帮助大家解决在 Android 开发中遇到的抓包问题,提升开发效率和调试能力。