Charles是一个网络抓包工具,相比 Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具。

1. 相关链接

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,如图所示。

img

设置完毕后,电脑上会出现一个提示窗口,询问是否信任此设备,如图所示。

img

此时点击 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 后,便会弹出证书的安装页面,如图所示:

img

点击“安装”按钮,然后输入密码即可完成安装,如图所示。

img

如果你的 iOS 版本是 10.3 以下的话,信任 CA 证书的流程就已经完成了。

如果你的 iOS 版本是10.3及以上,还需要在“设置”→“通用”→“关于本机”→“证书信任设置”中将证书的完全信任开关打开,如图所示。

img

3.4 Android

如果你的手机是 Android 系统,可以按照下面的操作进行证书配置。

在 Android 系统中,同样需要设置代理为 Charles 的代理,如图所示。

设置完毕后,电脑上就会出现一个提示窗口,询问是否信任此设备,如图所示,此时直接点击 Allow 按钮即可。

接下来,像 iOS 设备那样,在手机浏览器上打开 chls.pro/ssl ,这时会出现一个提示框,如图所示。

我们为证书添加一个名称,然后点击“确定”按钮即可完成证书的安装。

转载请注明:静觅 » [Python3网络爬虫开发实战] 1.7.1-Charles的安装

AI悦创·创造不同!
AI悦创 » Charles 的安装

1 评论

  1. ##### 3.1.3.3 Chrome

    需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 `127.0.0.1:8888` 也可达到相同效果。具体设置可以参考该视频:https://www.bilibili.com/video/BV16K411W7Gs/?p=6

Leave a Reply