文档中心
Charles鎶撳寘绁炲櫒iOS涓奡SL璇佷功閰嶇疆鍏ㄦ敾鐣?txt
时间 : 2025-09-27 15:43:12浏览量 : 2
什么是Charles抓包工具?

Charles是一款强大的HTTP/HTTPS抓包工具,就像网络世界的"X光机",能够让你清楚地看到手机应用和服务器之间的所有通信内容。作为一名网络安全工程师,我经常用它来分析应用的数据传输情况,排查问题或者进行安全测试。
举个例子:假设你正在使用某外卖APP,好奇它从下单到配送都发送了哪些数据给服务器?用了Charles就能一目了然看到所有请求和响应内容。
为什么iOS需要安装SSL证书?
现代APP几乎都使用HTTPS加密通信(就是网址前面带小锁的那种),这是好事儿——保护用户隐私嘛!但这也意味着常规方法无法查看加密内容。要在iOS设备上用Charles查看HTTPS流量,就必须安装Charles的SSL证书。
想象一下HTTPS就像一封密封的信件,SSL证书就是拆信的特许证。没有这个"特许证",你只能知道信件来往的事实,却看不到里面的具体内容。
详细配置步骤(以iOS 15为例)
第一步:准备工作
1. 电脑端设置:
- 打开Charles → Proxy → SSL Proxying Settings
- 勾选"Enable SSL Proxying"
- 在"Locations"中添加要抓包的域名(如`*.*`表示所有域名)
2. 获取电脑IP地址:
- Mac:系统偏好设置 → 网络 → 查看IP
- Windows:cmd中输入`ipconfig`
第二步:手机连接同一WiFi并设置代理
1. 进入iOS的WiFi设置 → 点击当前连接的WiFi右侧的"i"图标
2. HTTP代理选择"手动"
3. 服务器填写电脑IP地址
4. 端口填8888(Charles默认端口)
*小技巧*:建议先关闭手机的移动数据,避免代理设置影响其他应用
第三步:安装SSL证书
1. Safari访问`chls.pro/ssl`下载证书
2. iOS会提示"此网站正尝试下载配置描述文件",点击允许
3. 进入设置 → 通用 → VPN与设备管理
4. 找到"CHARLES PROXY CA..."的描述文件并安装
第四步:信任证书(关键步骤!)
很多小伙伴卡在这一步!安装完证书后必须手动信任:
1. 设置 → 通用 → 关于本机 → 证书信任设置
2. 找到"CHARLES PROXY CA..."并开启完全信任
*安全提醒*:测试结束后记得关闭代理并删除证书!
Charles抓包实战演示
假设我们要分析某购物APP的API调用:
1. 基础操作:
- Sequence视图可以看到所有请求按时间排序
- Structure视图按域名分类显示请求
2. 过滤技巧:
右键域名选择"Focus"可以只显示该域名的请求
顶部Filter输入关键词快速筛选
3. 查看HTTPS内容:
正确配置后,原本加密的内容现在可以明文查看:
```json
{
"product_id": "12345",
"price": "299",
"user_token": "abcd1234..."
}
```
4. 篡改请求测试:
右键请求 → Compose可以修改参数重新发送,
常用于测试边界情况和安全性验证
Charles的高级玩法
HTTPS抓包原理揭秘
Charles实际上扮演了中间人(MITM)的角色:
```
你的手机 ←HTTPS→ Charles ←HTTPS→ 真实服务器
它会分别与两端建立加密连接,然后解密-记录-再加密转发。这就是为什么需要安装它的根证书——让它能伪造任何网站的证书而不被系统警告。
Breakpoints断点调试
在Proxy → Breakpoint Settings中可以设置断点规则:
- 请求前断点:修改即将发出的请求参数
- 响应后断点:修改服务器返回的数据
实际案例:我曾用这个方法测试某金融APP在没有收到余额数据时的表现。
Map Local/Remote功能
- Map Local:将特定请求映射到本地文件
- Map Remote:将A地址的请求重定向到B地址
比如把生产环境API指向你的测试服务器。
iOS特有的注意事项
1. ATS限制:
苹果的应用传输安全(ATS)要求可能导致某些连接失败。
解决方案是在Info.plist中添加例外:
```xml
2. HTTP/2问题:
部分新版本APP使用HTTP/2协议,
需要在Charles的Proxy Settings中启用HTTP/2支持。
3. VPN冲突:
如果手机使用了VPN,
可能需要先关闭VPN才能正常抓包。
Charles的安全风险警示??
虽然Charles是开发利器,但从安全角度看:
1. 中间人攻击风险:
同样的技术可被恶意软件用来窃取数据。
2. 敏感信息暴露:
抓包可能看到密码、token等敏感信息,
务必确保只在受控环境使用。
3. 法律边界:
未经授权监控他人通信可能违法,
仅限用于自己开发或授权的APP!
建议工作完成后立即:
- [ ] iOS删除已安装的Charles证书
- [ ] iOS关闭HTTP代理
- [ ] Charles停止记录会话
Charles替代方案对比
|工具|优点|缺点|适用场景|
|||||
|Fiddler|Windows友好|对macOS支持弱|Windows平台开发|
|Wireshark|底层协议分析|学习曲线陡峭|网络层问题排查|
|mitmproxy|命令行强大|可视化差|自动化测试|
综合来看,Charles依然是移动开发者的首选瑞士军刀!
QA常见问题解答
Q: iOS安装证书后仍然看不到HTTPS内容?
A:
1)确认已开启SSL Proxying
2)检查是否添加了目标域名
3)重启Charles和手机试试
Q: Android也需要这样配置吗?
A: Android流程类似但更简单,
不需要额外信任CA证书步骤。
Q: Charles收费吗?
有30天试用期,
之后每30分钟会强制暂停一次,
付费可解除限制。
掌握了这些技巧后,你就能像黑客一样洞察APP的所有网络活动啦!(当然要在合法范围内使用哦)下次遇到网络问题时不妨打开Charles一探究竟~
TAG:charles ssl 证书 ios,charles ssl pinning,ssl,charles ssl ca certificate installatio,charles苹果证书下载