移动端HTTPS抓包利器:Charles配置超详细教程 (iOS/Android)
在移动应用开发、测试、安全分析以及逆向工程等领域,网络抓包是一项至关重要的技能。通过抓包,我们可以清晰地了解到应用程序与服务器之间的通信协议、数据格式、接口调用逻辑等关键信息。然而,随着网络安全意识的提高,HTTPS (HTTP Secure) 协议已成为主流,其通过 SSL/TLS 加密传输内容,使得传统的抓包工具难以直接查看明文数据。
Charles Proxy(通常简称 Charles)是一款强大且跨平台的网络抓包工具,它通过充当中间人(Man-in-the-Middle, MITM)的方式,能够有效地解密 HTTPS 流量,让我们能够检查和调试移动设备上的网络请求。本文将详细介绍如何在 macOS/Windows 上配置 Charles,并指导您如何在 iOS 和 Android 设备上进行设置,以实现对 HTTPS 流量的抓取和分析。
文章结构:
- Charles 简介与工作原理
- 准备工作:安装与环境要求
- Charles 桌面端核心配置
- HTTP 代理设置
- SSL 代理设置 (HTTPS 解密关键)
- iOS 设备配置 Charles 抓包
- 连接同一网络
- 配置 Wi-Fi 代理
- 安装 Charles 根证书
- 信任 Charles 根证书
- 验证抓包效果
- Android 设备配置 Charles 抓包
- 连接同一网络
- 配置 Wi-Fi 代理
- 安装 Charles 根证书 (不同 Android 版本可能略有差异)
- 重点:处理 Android 7.0 及以上版本的证书信任问题
- 验证抓包效果
- Charles 常用功能与技巧
- 过滤请求 (Filter / Focus)
- 请求重写 (Rewrite)
- 断点调试 (Breakpoints)
- 接口 Mock (Map Remote / Map Local)
- 弱网模拟 (Throttling)
- 常见问题与故障排除
- 总结与注意事项
1. Charles 简介与工作原理
Charles 是一款基于 Java 开发的 HTTP 代理服务器和 HTTP 监控工具。它允许开发者查看其机器与互联网之间的所有 HTTP 和 SSL/HTTPS 流量。这包括请求、响应和 HTTP 头信息(包含 cookies 和缓存信息)。
HTTPS 抓包原理 (MITM):
正常的 HTTPS 通信是客户端与服务器之间直接建立加密连接。当配置 Charles 进行 HTTPS 抓包时,流程变为:
- 设备 -> Charles: 移动设备将网络请求发送给 Charles(作为代理)。
- Charles -> 服务器: Charles 伪装成客户端,向目标服务器发起真实的 HTTPS 请求。
- 服务器 -> Charles: 服务器将加密数据返回给 Charles。Charles 使用自己的私钥解密(因为之前已经与服务器建立了连接)。
- Charles -> 设备: Charles 使用 自己的根证书 签发一个伪造的目标服务器证书,然后用这个伪造证书与移动设备建立 HTTPS 连接,并将解密后的数据重新加密发送给设备。
要让这个过程成功,关键在于移动设备必须信任 Charles 的根证书。否则,设备会检测到证书无效(因为不是由受信任的 CA 签发,也不是目标服务器的真实证书),从而拒绝连接,导致抓包失败。
2. 准备工作:安装与环境要求
- 安装 Charles: 前往 Charles 官网 (https://www.charlesproxy.com/) 下载对应操作系统(macOS / Windows / Linux)的最新版本并安装。Charles 是付费软件,但提供免费试用期(通常为 30 天,每次启动后可免费使用 30 分钟,之后会强制退出,但可以重新启动继续使用)。
- 网络环境: 确保运行 Charles 的电脑和需要抓包的移动设备(iOS / Android)连接在 同一个局域网 下(例如,连接同一个 Wi-Fi 路由器)。这是代理生效的前提。
- 获取电脑 IP 地址: 你需要知道运行 Charles 的电脑在局域网中的 IP 地址,以便在移动设备上配置代理。
- macOS: 系统偏好设置 -> 网络 -> Wi-Fi -> 查看 IP 地址。或者在终端输入
ifconfig | grep "inet "
。 - Windows: 打开命令提示符 (cmd),输入
ipconfig
,查找 “无线局域网适配器 WLAN” 或 “以太网适配器 以太网” 下的 IPv4 地址。
- macOS: 系统偏好设置 -> 网络 -> Wi-Fi -> 查看 IP 地址。或者在终端输入
3. Charles 桌面端核心配置
启动 Charles 后,我们需要进行一些关键配置。
3.1 HTTP 代理设置
Charles 默认会监听一个端口来接收代理请求,通常是 8888
。
-
检查/修改端口:
- 顶部菜单栏 ->
Proxy
->Proxy Settings...
- 在
Proxies
标签页下,确保HTTP Proxy
部分的Port
设置为8888
(或者你选择的其他端口,但后续手机配置需保持一致)。 Enable transparent HTTP proxying
选项一般可以保持勾选。
- 顶部菜单栏 ->
-
允许局域网连接 (重要):
- 同样在
Proxy Settings...
窗口,切换到macOS
或Windows
标签页(根据你的操作系统)。 - macOS: 勾选
Enable macOS proxy
如果你想让 Charles 自动接管 Mac 自身的网络请求(可选,但有时方便)。 - Windows: 勾选
Enable Windows proxy
如果你想让 Charles 自动接管 Windows 自身的网络请求(可选)。 - 关键: 无论是否勾选系统代理,确保 Charles 允许来自局域网设备的连接。通常 Charles 首次启动或有设备尝试连接时,会弹出提示框询问是否允许,请务必点击
Allow
或Permit
。如果错过或不确定,可以在Proxy
->Access Control Settings...
中检查,确保你的移动设备 IP 地址或整个局域网段(例如192.168.1.0/24
)在允许列表中。最简单的方式是添加0.0.0.0/0
,但这会允许任何设备连接,安全性稍低,仅建议在受信任的网络环境中使用。
- 同样在
3.2 SSL 代理设置 (HTTPS 解密关键)
默认情况下,Charles 仅抓取 HTTP 流量,对于 HTTPS 流量只显示 CONNECT 请求,无法看到具体内容。要解密 HTTPS,需要配置 SSL 代理。
-
启用 SSL 代理:
- 顶部菜单栏 ->
Proxy
->SSL Proxying Settings...
- 勾选
Enable SSL Proxying
。
- 顶部菜单栏 ->
-
添加需要解密的域名:
- 在
Locations
部分,点击Add
按钮。 - 会弹出一个
Edit Location
窗口。- Host: 输入你想解密的服务器域名。例如,
api.example.com
。 - Port: 通常 HTTPS 使用
443
端口,保持默认即可。 - 通配符: 为了方便起见,经常需要抓取所有域名的 HTTPS 流量。可以在
Host
字段输入*
,或者更精细地如*.example.com
来匹配example.com
的所有子域名。最常用的配置是直接添加一条 Host 为*
,Port 为443
的规则,表示尝试解密所有域名的 HTTPS 流量。但请注意,这可能会增加 Charles 的处理负担,并可能与某些对证书校验极其严格的应用(如银行、金融类 App)产生冲突。建议根据实际需要添加具体的域名或使用*.*
(等同于 Host:*
, Port:*
) 作为通用规则。
- Host: 输入你想解密的服务器域名。例如,
- 点击
OK
保存设置。
- 在
完成以上桌面端配置后,Charles 已经准备好接收和处理来自移动设备的代理请求,并尝试解密 HTTPS 流量了。
4. iOS 设备配置 Charles 抓包
4.1 连接同一网络
再次确认你的 iPhone/iPad 和运行 Charles 的电脑连接在同一个 Wi-Fi 网络下。
4.2 配置 Wi-Fi 代理
- 打开 iOS 设备的
设置
(Settings)。 - 进入
无线局域网
(WLAN / Wi-Fi)。 - 找到当前连接的 Wi-Fi 网络,点击右侧的
i
图标。 - 滚动到底部,找到
配置代理
(Configure Proxy)。 - 选择
手动
(Manual)。 - 在
服务器
(Server) 字段,输入你电脑的 IP 地址(在第 2 步获取的)。 - 在
端口
(Port) 字段,输入 Charles 设置的代理端口(默认为8888
)。 - 点击右上角的
存储
(Save)。
此时,你的 iOS 设备的所有 HTTP/HTTPS 网络流量都会尝试通过 Charles 代理。
首次连接提示: 当 iOS 设备首次通过代理连接 Charles 时,Charles 界面会弹出一个提示框,询问是否允许该设备的连接。务必点击 Allow
。如果没有弹出,检查 Charles 的 Proxy -> Access Control Settings...
。
4.3 安装 Charles 根证书
为了让 iOS 设备信任 Charles 伪造的服务器证书(从而解密 HTTPS),需要在设备上安装 Charles 的根证书。
- 确保代理已生效: 确认 Wi-Fi 代理设置正确并已保存。
- 打开 Safari 浏览器: 在 iOS 设备上打开 Safari。
- 访问证书下载地址: 在地址栏输入
chls.pro/ssl
(或者charlesproxy.com/getssl
) 并访问。 - 允许下载描述文件: Safari 会提示你网站正在尝试下载一个配置描述文件。点击
允许
(Allow)。 - 下载完成提示: 下载完成后,会提示 “已下载描述文件” (Profile Downloaded)。点击
关闭
(Close)。
4.4 信任 Charles 根证书
仅仅下载安装还不够,还需要在 iOS 系统设置中明确信任该根证书。
- 回到 iOS 设备的
设置
(Settings)。 - 进入
通用
(General)。 - 滚动到底部,找到
VPN 与设备管理
(VPN & Device Management) 或旧版 iOS 中的描述文件
(Profile) 或描述文件与设备管理
(Profiles & Device Management)。 - 在
已下载的描述文件
(Downloaded Profile) 部分,你会看到一个名为Charles Proxy CA ...
的文件。点击它。 - 点击右上角的
安装
(Install)。 - 系统可能会要求你输入设备的锁屏密码。输入密码。
- 会出现一个证书警告页面,详细说明这是一个根证书,安装它会允许其颁发的证书被信任。仔细阅读后,点击右上角的
安装
(Install)。 - 再次确认安装,点击
安装
(Install)。 -
描述文件安装完成后,点击右上角的
完成
(Done)。 -
最关键一步:启用完全信任
- 回到
设置
->通用
->关于本机
(About)。 - 滚动到底部,找到
证书信任设置
(Certificate Trust Settings)。 - 在这里,你会看到刚才安装的
Charles Proxy Custom Root Certificate
或类似名称。 - 将其对应的开关打开 (Enable Full Trust for Root Certificates)。
- 系统会再次弹出安全警告,确认要信任该证书,点击
继续
(Continue)。
- 回到
至此,iOS 设备的 Charles 根证书安装和信任过程全部完成。
4.5 验证抓包效果
现在,在 iOS 设备上打开任意需要网络请求的应用(例如浏览器访问一个 HTTPS 网站,或者打开一个普通的 App)。观察 Charles 界面:
- Structure 视图: 你应该能看到来自你 iOS 设备的 IP 地址,并展开后看到各种域名的请求。
- HTTPS 请求: 对于配置了 SSL 代理的域名(例如我们设置了
*
或*.*
),请求左侧的图标应该是一个蓝色的锁(表示已解密),而不是灰色的锁或地球图标。 - 查看内容: 点击某个 HTTPS 请求,切换到
Contents
标签页,你应该能看到Request
和Response
的明文内容(或可读的格式,如 JSON、HTML 等),而不是乱码或提示未解密。
如果能看到解密后的 HTTPS 内容,说明 iOS 端的 Charles 抓包配置成功!
记得: 抓包结束后,务必回到 iOS 的 Wi-Fi 设置,将代理改回 关闭
(Off),并在 设置 -> 通用 -> VPN 与设备管理
中移除 Charles 的描述文件,以及在 证书信任设置
中关闭对 Charles 证书的信任。这对于保护你的网络安全和隐私至关重要。
5. Android 设备配置 Charles 抓包
Android 设备的配置流程与 iOS 类似,但在证书安装和信任方面,尤其是 Android 7.0 (Nougat) 及以上版本,存在显著差异。
5.1 连接同一网络
同样,确保你的 Android 手机/平板和运行 Charles 的电脑在同一个 Wi-Fi 网络。
5.2 配置 Wi-Fi 代理
Android 配置代理的方式因系统版本和手机厂商定制 ROM 而略有不同,但大同小异:
- 打开 Android 设备的
设置
(Settings)。 - 进入
WLAN
或网络和互联网
->WLAN
(Wi-Fi)。 - 长按 (或者点击) 当前连接的 Wi-Fi 网络名称。
- 选择
修改网络
(Modify network) 或网络详情
(Network details) 或类似选项。 - 找到
代理
(Proxy) 设置(可能隐藏在高级选项
Advanced options 下)。 - 选择
手动
(Manual)。 - 在
代理主机名
(Proxy hostname) 或服务器地址
(Server address) 字段,输入你电脑的 IP 地址。 - 在
代理端口
(Proxy port) 字段,输入 Charles 设置的代理端口(默认为8888
)。 - 保存设置。
首次连接提示: 与 iOS 类似,Android 设备首次通过代理连接 Charles 时,Charles 会弹出授权提示,请点击 Allow
。
5.3 安装 Charles 根证书
- 确保代理已生效: 确认 Wi-Fi 代理设置正确并已保存。
- 打开任意浏览器: 在 Android 设备上打开 Chrome 或其他浏览器。
- 访问证书下载地址: 在地址栏输入
chls.pro/ssl
(或charlesproxy.com/getssl
) 并访问。 -
下载证书: 浏览器会下载一个
.pem
或.crt
格式的证书文件 (例如charles-proxy-ssl-proxying-certificate.pem
)。通常会保存在下载
(Download) 文件夹中。 -
安装证书: 证书安装方式在不同 Android 版本和品牌手机上差异较大:
- 通用方法 (推荐):
- 打开
设置
->安全与隐私
(Security & privacy) 或安全
(Security)。 - 找到
更多安全设置
(More security settings) 或加密与凭据
(Encryption & credentials) 或其他安全设置
(Other security settings)。 - 寻找
从存储设备安装证书
(Install from storage) 或安装证书
(Install certificates) 或Wi-Fi 证书
(Wi-Fi certificate) (注意:有些系统把 CA 证书归类到 Wi-Fi 证书下,名称可能不直观)。 - 选择
CA 证书
(CA certificate)。注意: 系统可能会警告安装 CA 证书的风险,请仔细阅读并确认。不要选择安装成 “VPN和应用用户证书”。 - 系统会打开文件管理器,导航到你刚才下载证书的位置(通常是
Download
文件夹)。 - 选择下载的
.pem
或.crt
文件。 - 命名证书: 系统会要求你为该证书命名。输入一个容易识别的名称,例如
Charles Proxy
。 - 点击
确定
(OK) 或安装
(Install)。 - 如果设备设置了锁屏密码/图案,可能需要验证。
- 打开
- 部分系统: 可能在下载证书后,通知栏会有提示,点击通知可以直接进入安装流程。或者,在
下载
应用中找到证书文件,点击打开,系统可能会自动引导至证书安装界面。
- 通用方法 (推荐):
5.4 重点:处理 Android 7.0 (Nougat) 及以上版本的证书信任问题
这是 Android 抓包最关键也最容易出问题的地方!
从 Android 7.0 开始,Google 改变了网络安全策略:默认情况下,应用程序不再信任用户自行添加的 CA 证书 (User-added CAs),只信任系统预置的 CA 证书。
这意味着,即使你按照上述步骤成功将 Charles 根证书安装到了系统的“用户证书”存储区,对于 targetSdkVersion >= 24 (即适配 Android 7.0 或更高版本) 的应用程序来说,它们的 HTTPS 请求 默认不会信任 Charles 签发的伪造证书,导致抓包失败(Charles 中看到的是加密内容或连接错误)。
解决方案:
解决这个问题通常有以下几种方法,难度和适用场景各不相同:
-
修改目标 App 的网络安全配置 (推荐,但需要 App 源码或反编译能力):
- 如果你是该 App 的开发者,或者你有能力对 App 进行反编译和重新打包:
- 在 App 的
res
目录下创建一个xml
文件夹(如果不存在)。 - 在
xml
文件夹中创建一个名为network_security_config.xml
的文件。 - 编辑该文件,添加配置,明确允许在 debug 构建下信任用户添加的 CA 证书。示例内容如下:
xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>cleartextTrafficPermitted="true"
:允许 HTTP 明文传输(可选,根据需要设置)。<base-config>
:定义基础配置,默认信任系统证书。<debug-overrides>
:定义仅在debuggable="true"
时生效的覆盖配置。<certificates src="user" />
:核心! 表示在 debug 模式下信任用户安装的 CA 证书。
- 在 App 的
AndroidManifest.xml
文件中的<application>
标签内,添加android:networkSecurityConfig
属性,指向这个配置文件:
xml
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...>
...
</application> - 重新编译并安装 这个修改后的 App (通常是 debug 版本)。这样,该 App 在运行时就会加载这个网络安全配置,从而信任你安装的 Charles 根证书。
- 在 App 的
- 如果你是该 App 的开发者,或者你有能力对 App 进行反编译和重新打包:
-
使用较低版本的 Android 系统或 App:
- 如果条件允许,使用 Android 6.0 (Marshmallow) 或更低版本的系统进行测试。这些版本没有这个证书信任限制。
- 或者,找到该 App 的旧版本,其
targetSdkVersion
可能低于 24。
-
使用 Root 权限将 Charles 证书安装到系统信任区:
- 如果你的 Android 设备已经 Root,可以通过一些工具 (如 Magisk 模块 Move Certificates) 将用户安装的 Charles 证书移动到系统证书信任区 (
/system/etc/security/cacerts/
)。这样,所有 App (无论 targetSdkVersion) 都会信任它。此方法风险较高,操作不当可能导致系统不稳定或安全问题,请谨慎使用。
- 如果你的 Android 设备已经 Root,可以通过一些工具 (如 Magisk 模块 Move Certificates) 将用户安装的 Charles 证书移动到系统证书信任区 (
-
使用虚拟机或模拟器:
- 一些 Android 模拟器(如 Genymotion、Android Studio 自带模拟器等)可能更容易配置或自带 Root 权限,方便进行证书操作。
对于大多数情况,如果你无法修改 App 源码,又想抓取适配了 Android 7.0+ 的 App 的 HTTPS 流量,可能会遇到很大困难。 开发者通常采用方法 1,在 debug 构建中包含上述配置。测试人员如果拿不到修改后的 debug 包,则可能需要考虑使用 Root 设备或旧版系统。
5.5 验证抓包效果
配置完成后,在 Android 设备上操作 App,观察 Charles:
- 检查是否能看到来自 Android 设备的请求。
- 对于目标 App 的 HTTPS 请求:
- 如果 App 未适配 Android 7.0+ 或你已成功应用了网络安全配置修改: 请求应该被解密(蓝色锁图标),
Contents
视图能看到明文。 - 如果 App 适配了 Android 7.0+ 且未做修改: HTTPS 请求很可能无法解密,显示为灰色锁图标,或者直接连接失败。你可能只能看到
CONNECT
请求,无法看到GET/POST
等具体内容。
- 如果 App 未适配 Android 7.0+ 或你已成功应用了网络安全配置修改: 请求应该被解密(蓝色锁图标),
记得: 抓包结束后,务必在 Android 的 Wi-Fi 设置中关闭手动代理。同时,建议进入 设置 -> 安全 -> 加密与凭据 -> 信任的凭据 -> 用户
标签页,找到并移除你安装的 Charles Proxy
证书,以恢复默认的网络安全状态。
6. Charles 常用功能与技巧
掌握了基本的 HTTPS 抓包配置后,Charles 的强大之处还在于其丰富的功能:
-
过滤请求 (Filter / Focus):
- Filter: 在主界面顶部的
Filter
输入框中输入关键字(如域名、路径片段),可以快速筛选显示匹配的请求。 - Focus: 在
Structure
视图中右键点击某个域名或路径,选择Focus
。之后Sequence
视图将只显示该域名下的请求,便于集中分析。取消 Focus 只需再次右键选择Unfocus
。
- Filter: 在主界面顶部的
-
请求重写 (Rewrite):
Tools
->Rewrite...
- 可以创建规则来修改请求或响应的特定部分,如修改 Header、URL 参数、Host、Path,甚至替换响应 Body。这对于模拟不同场景或绕过某些客户端校验非常有用。
-
断点调试 (Breakpoints):
- 在请求上右键 ->
Breakpoints
。之后所有匹配该 URL 的请求(或响应)在发送前(或接收后)会被 Charles 拦截。 - 此时你可以检查和 修改 请求/响应内容,然后点击
Execute
继续发送/接收。这对于调试接口参数或模拟服务器异常返回非常强大。
- 在请求上右键 ->
-
接口 Mock (Map Remote / Map Local):
- Map Remote:
Tools
->Map Remote...
。将特定 URL 的请求重定向到另一个 URL。可用于将线上接口请求映射到测试环境接口。 - Map Local:
Tools
->Map Local...
。将特定 URL 的请求直接映射到本地文件。当 Charles 收到匹配的请求时,它不会去访问网络,而是直接返回你指定的本地文件的内容。非常适合 Mock 接口数据,或者在没有网络的情况下调试前端逻辑。
- Map Remote:
-
弱网模拟 (Throttling):
Proxy
->Throttle Settings...
或点击工具栏上的乌龟图标。- 可以模拟各种网络条件,如 3G、慢速网络、高延迟、低带宽等,甚至自定义参数。有助于测试 App 在不同网络环境下的表现和容错能力。
7. 常见问题与故障排除
-
手机无法连接到 Charles 代理:
- 确认手机和电脑在同一 Wi-Fi 网络。
- 确认手机 Wi-Fi 代理设置中的 IP 地址和端口号正确无误。
- 确认电脑防火墙没有阻止 Charles 的端口(默认为 8888)。尝试暂时关闭防火墙测试。
- 确认 Charles 中允许了该手机 IP 的连接 (
Proxy -> Access Control Settings...
)。 - 重启 Charles 和手机 Wi-Fi 试试。
-
可以抓到 HTTP,但 HTTPS 显示 Unknown 或连接失败:
- 确认 Charles 的
SSL Proxying Settings
中已启用 SSL 代理,并添加了正确的 Host(例如*
或*.*
)。 - iOS: 确认 Charles 根证书已安装 并且 在
证书信任设置
中已启用完全信任。 - Android: 确认 Charles 根证书已作为 CA 证书 安装。
- Android 7.0+: 最可能的原因是目标 App 没有信任用户证书。参考 5.4 节的解决方案,需要修改 App 配置或使用其他方法。
- 某些 App 可能使用了 SSL Pinning 技术,即 App 内硬编码了服务器证书信息,只信任特定的证书。这种情况下,即使安装了 Charles 证书,App 也会拒绝连接。绕过 SSL Pinning 需要更高级的技术,如使用 Frida 等 Hook 框架。
- 确认 Charles 的
-
Charles 界面看不到任何来自手机的请求:
- 检查代理设置是否生效。在手机浏览器访问一个不存在的地址,看 Charles 是否有反应。
- 尝试重启 Charles 和手机。
- 确保没有其他 VPN 或代理应用在手机上运行冲突。
-
证书无法下载或安装:
- 确认代理已正确设置并生效后,再尝试访问
chls.pro/ssl
。 - 清除浏览器缓存或换个浏览器试试。
- 检查手机存储空间是否充足。
- Android 上确保证书是作为 CA 证书安装。
- 确认代理已正确设置并生效后,再尝试访问
8. 总结与注意事项
Charles 是移动开发和测试人员的瑞士军刀,熟练掌握其配置和使用,能极大提高调试效率和问题定位能力。配置 Charles 进行移动端 HTTPS 抓包的核心在于:设置代理让流量经过 Charles 和 让移动设备信任 Charles 的根证书。
重要注意事项:
- 安全风险: 安装第三方根证书(如 Charles 的)并信任它,意味着该证书的持有者(在这里是 Charles)可以解密你设备上通过该代理的所有 HTTPS 流量。请确保只在受信任的网络环境和必要的调试场景下使用,并且来源可靠。
- 及时清理: 抓包任务完成后,务必:
- 在移动设备上关闭 Wi-Fi 代理设置。
- 在移动设备上移除 Charles 的根证书(iOS: 描述文件 + 证书信任;Android: 信任的凭据 -> 用户)。
- 否则,你的网络流量可能会持续尝试通过一个不存在的代理,导致无法上网,或者在连接到公共 Wi-Fi 时存在安全隐患。
- 遵守法规与道德: 使用抓包工具分析网络流量时,请遵守相关法律法规和用户协议。不要用于非法目的,如窃取他人敏感信息、攻击服务器或破解受版权保护的内容。仅在授权或合法的范围内进行分析和调试。
- SSL Pinning: 对于采用了 SSL Pinning 技术的 App,常规的 Charles 配置无法抓取其 HTTPS 流量。需要使用更高级的技术手段来绕过。
希望这篇详尽的教程能帮助你成功配置 Charles,顺利进行移动端的 HTTPS 抓包分析工作。实践是最好的老师,动手操作一遍,遇到问题再查阅资料,你会很快掌握这项实用技能。