要成功在mac上用charles抓取https及移动端流量,需依次完成:一、安装激活charles;二、安装并信任ssl根证书;三、配置ssl代理规则(* : 443);四、设置系统http代理(端口8888);五、ios设备手动配置代理并安装/信任chls.pro/ssl证书;六、用filter和focus过滤目标请求;七、清空历史并开启录制。

如果您希望在Mac系统上捕获并分析网络请求,但无法查看HTTPS流量或移动端数据,可能是由于代理未启用、证书未信任或设备未处于同一局域网所致。以下是完成Charles抓包的完整操作步骤:
一、安装与激活Charles
Charles需正确安装并获得合法授权才能持续使用全部功能,避免试用期结束后功能受限。
1、访问Charles官网(charlesproxy.com),下载适用于macOS的.dmg安装包。
2、双击打开.dmg文件,将Charles图标拖拽至“应用程序”文件夹完成安装。
3、首次启动时,系统弹出网络权限请求,必须点击允许以授予Charles配置代理的权限。
4、进入菜单栏Help → Register,输入以下信息激活软件:
Registered Name:https://zhile.io
License Key:48891cf209c6d32bf4
二、配置SSL证书以解密HTTPS流量
HTTPS请求默认加密,必须安装并信任Charles根证书,否则仅能捕获域名和状态码,无法查看请求体与响应内容。
1、点击Help → SSL Proxying → Install Charles Root Certificate。
2、打开“钥匙串访问”应用(可通过Spotlight搜索),在左侧面板选择“系统”,搜索“Charles Proxy CA”。
3、双击该证书,在弹出窗口中展开“信任”选项,将“使用此证书时”设置为“始终信任”。
4、关闭窗口并输入管理员密码确认更改。
三、启用SSL代理监听规则
仅安装证书不足以自动解密所有HTTPS通信,还需明确指定需拦截的域名及端口范围。
1、点击Proxy → SSL Proxying Settings。
2、点击左下角Add按钮,在Host字段输入*(通配符表示全部域名)。
3、在Port字段输入443(标准HTTPS端口),点击OK保存。
4、确保窗口中已显示“* : 443”条目,且Enable SSL Proxying复选框已被勾选。
四、设置系统级HTTP代理
使Mac本机所有HTTP/HTTPS流量经由Charles转发,是捕获浏览器及部分桌面应用请求的前提。
1、点击Proxy → macOS Proxy,确保该项被勾选。
2、点击Proxy → Proxy Settings,确认Port为8888(默认值,勿随意修改)。
3、勾选Enable Transparent HTTP Proxying,以支持非标准端口的HTTP请求捕获。
4、点击Done保存设置。
五、配置iOS设备代理并安装移动证书
iOS设备需手动设置代理并显式信任证书,否则无法解密HTTPS请求,且可能提示“无法验证服务器身份”。
1、点击Help → Local IP Addresses,记下en0接口对应的IPv4地址(如192.168.1.10)。
2、在iPhone上进入设置 → Wi-Fi → 当前连接网络右侧的ⓘ图标 → 配置代理 → 手动。
3、服务器填写上述IP地址,端口填写8888,点击存储。
4、在Safari中访问chls.pro/ssl,下载并安装证书。
5、进入设置 → 通用 → 关于本机 → 滚动到底部点击证书信任设置,启用Charles Proxy CA的完全信任。
六、过滤与定位目标请求
捕获流量后若存在大量无关请求,需通过过滤机制快速聚焦目标接口,避免人工筛查耗时。
1、在Charles主界面顶部Filter栏输入关键词,例如weixin.qq.com或api.example.com。
2、右键左侧结构树中的目标域名 → Focus,界面将仅保留该域名下的请求记录。
3、点击Structure视图可按域名分组,点击Sequence视图可按时间顺序排列请求。
4、选中某条请求后,在右侧面板切换至Contents标签页,即可查看Query String、Headers、Response等完整字段。
七、清除干扰请求并启动录制
启动抓包前应清空历史会话,防止旧数据混杂新请求;同时确保录制功能开启,否则无任何流量被捕获。
1、点击工具栏左上角的红色圆点图标(Start Recording),确认其处于高亮激活状态。
2、点击Edit → Clear History,或直接点击工具栏垃圾桶图标,彻底清除已有会话。
3、在手机或浏览器中执行目标操作(如刷新页面、点击按钮、加载小程序)。
4、观察Charles左侧面板是否实时出现新请求条目,若无响应,请检查设备联网状态及代理配置是否一致。











