Charles是一个网络抓包工具,相比 Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具。
1. 相关链接
- 官方网站:https://www.charlesproxy.com
- 下载链接:https://www.charlesproxy.com/download
2. 下载Charles
我们可以在官网下载最新的稳定版本,如图所示。可以发现,它支持Windows、Linux和Mac三大平台。
?
直接点击对应的安装包下载即可,具体的安装过程这里不再赘述。
Charles 是收费软件,不过可以免费试用 30 天。如果试用期过了,其实还可以试用,不过每次试用不能超过30分钟,启动有 10 秒的延时,但是完整的软件功能还是可以使用的,所以还算比较友好。
?
3. 证书配置
现在很多页面都在向 HTTPS 方向发展,HTTPS 通信协议应用得越来越广泛。如果一个 App 通信应用了 HTTPS 协议,那么它通信的数据都会是被加密的,常规的截包方法是无法识别请求内部的数据的。
安装完成后,如果我们想要做 HTTPS 抓包的话,那么还需要配置一下相关 SSL 证书。接下来,我们再看看各个平台下的证书配置过程。
Charles 是运行在 PC 端的,我们要抓取的是 App 端的数据,所以要在 PC 和手机端都安装证书。
3.1 Windows
如果你的 PC 是 Windows 系统,可以按照下面的操作进行证书配置。
首先打开 Charles,点击 Help→SSL Proxying→Install Charles Root Certificate,即可进入证书的安装页面,如下动图所示。
?
接下来,会弹出一个安装证书的页面,如图所示。
?
点击“安装证书”按钮,就会打开证书导入向导,如图所示。
?
直接点击“下一步”按钮,此时需要选择证书的存储区域,点击第二个选项“将所有的证书放入下列存储”,然后点击“浏览”按钮,从中选择证书存储位置为“受信任的根证书颁发机构”,再点击“确定”按钮,然后点击“下一步”按钮,如下动图所示。
?
3.2 Mac
如果你的 PC 是 Mac 系统,可以按照下面的操作进行证书配置。
同样是点击 Help→SSL Proxying→Install Charles Root Certificate,即可进入证书的安装页面。
接下来,找到 Charles 的证书并双击,将“信任”设置为“始终信任”即可,如图所示。
?
这样就成功安装了证书。
3.3 iOS
如果你的手机是 iOS 系统,可以按照下面的操作进行证书配置。
首先,查看电脑的 Charles 代理是否开启,具体操作是点击 Proxy→Proxy Settings,打开代理设置页面,确保当前的 HTTP 代理是开启的,如图所示。这里的代理端口为8888,也可以自行修改。
?
接下来,将手机和电脑连在同一个局域网下。例如,当前电脑的IP为192.168.1.76
,那么首先设置手机的代理为192.168.1.76:8888
,如图所示。
?
设置完毕后,电脑上会出现一个提示窗口,询问是否信任此设备,如图所示。
?
此时点击 Allow 按钮即可。这样手机就和 PC 连在同一个局域网内了,而且设置了 Charles 的代理,即 Charles可以抓取到流经 App 的数据包了。
接下来,再安装 Charles 的 HTTPS 证书。
在电脑上打开 Help→SSL Proxying→Install Charles Root Certificate on a Mobile Device or Remote Browser,之后你会看到如下结果,看下面动图:
?
它提示我们在手机上设置好 Charles 的代理(刚才已经设置好了),然后在手机浏览器中打开 chls.pro/ssl 下载证书。
在手机上打开 chls.pro/ssl 后,便会弹出证书的安装页面,如图所示:
?
点击“安装”按钮,然后输入密码即可完成安装,如图所示。
?
如果你的 iOS 版本是 10.3 以下的话,信任 CA 证书的流程就已经完成了。
如果你的 iOS 版本是10.3及以上,还需要在“设置”→“通用”→“关于本机”→“证书信任设置”中将证书的完全信任开关打开,如图所示。
?
3.4 Android
如果你的手机是 Android 系统,可以按照下面的操作进行证书配置。
在 Android 系统中,同样需要设置代理为 Charles 的代理,如图所示。
?
设置完毕后,电脑上就会出现一个提示窗口,询问是否信任此设备,如图所示,此时直接点击 Allow 按钮即可。
接下来,像 iOS 设备那样,在手机浏览器上打开 chls.pro/ssl ,这时会出现一个提示框,如图所示。
?
我们为证书添加一个名称,然后点击“确定”按钮即可完成证书的安装。