本文记录如何在在Mac上使用Charles进行抓包,包含两个场景,抓取电脑应用上发起的请求响应数据,抓取移动设备(IPhone)上发起的请求响应数据。
因为Charles由Java开发,所以电脑中必须安装有Java JDK。在使用Charles的过程中,如果开了VPN,则需要关闭VPN。
安装
点击链接,选择Mac版本进行下载安装:www.charlesproxy.com/download/
1. 配置想要抓取数据的地址
Proxy → SSL Proxying Settings
默认设置是抓取所有HTTPS地址的数据,这里可以设置为只抓取特定地址的数据。
2. 在电脑上安装证书
Help → SSL Proxying → Install Charles Root Certificate
3. 设置HTTP和HTTPS代理
系统偏好设置 → 网络 → 高级 → 代理
端口号默认是8888,与Proxy → Proxying Settings 中的HTTP代理端口号相同。
到目前为止,就能抓取电脑应用中的请求响应数据了(比如谷歌浏览器中的请求响应数据)。
顺便一提,将 Charles → Preferences → Viewers 中的Combine request and response 选项取消勾选,应用的界面就会将请求和响应的数据分开展示,看起来比较直观。
接下来看一下如何抓取手机中的请求响应数据。
4. 在Mac上的Charles中查看安装移动设备证书的提示
Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser
提示的弹框中会给出电脑的IP地址和端口号,需要在手机中配置HTTP代理。
5. 在IPhone上安装证书
1. 在手机上配置HTTP代理
配置好后,在手机上随便打开一个App请求下数据,电脑上的Charles应用会弹出一个弹窗,点击允许。
2. 安装证书
在Safari浏览器中打开此链接:chls.pro/ssl
以上就是全部的配置过程,配置好之后就可以开始抓取数据了。