写在前面,本来特别想吐槽的,之前用charles很正常的,昨天临时急用的时候,又不能抓包了,今早有时间整理一下文档。
Charles版本号:V4.0【当前官网最新版本】
需要实现的是,可以通过charles代理,抓取HTTPS的信息。


一、步骤

1、安装Charles

Charles下载地址:https://www.charlesproxy.com/download/
破解jar包下载:http://pan.baidu.com/s/1nvuAneL,密码sctc。将下载的文件重命名为charles.jar并覆盖到Content->Java下即可完成破解(MAC)

2、打开设置基本参数

我选择的是mac版本的,下载安装好之后,打开Proxy——Proxy Settings…——Proxies——HTTP Proxy里的Port,就是代理的端口,是与手机端一致(比如这里默认8888)——勾选Enable transparent HTTP proxying

3、手机连接wifi,并且设置手动代理

(ip为当前电脑,端口是上面设置的8888) 此时,手机打开一个url,已经可以实现初步抓包!下面接着把https的配置好。

4、接着配置电脑上charles的ssl

Proxy——SSL Proxying Settings——SSL Proxying ——勾选Enable SSL Proxying——Locations里add一个Host和port(比如xxx-api.xxx.com, 443)(注意,这里先别填*:443, 下文会说明为什么)​,现在最重要的是两个证书。

5、电脑端的证书

Help——SSL Proxying——Install Charles Root Certificate,如图所示
直接安装不可行
但是发现提示安装不了,这个时候,发现可以通过
先保存后安装
可保存为默认名字charles-ssl-proxying-certificate.cer。然后拖入钥匙串,分别拖入钥匙串的登录和系统,并且都选择信任。
拖入钥匙串选择信任

6、手机端证书

在safari输入http://www.charlesproxy.com/getssl/,下载安装即可。

7、最后一步

记得前面说过的:443吗,对,这时就可以改为:443了,手机端,电脑,都可以访问任意https而畅通无阻。(如果前面就设置了,就会出现,手机访问xxx-api.xxx.com正常,而电脑访问一些https的资源时,就有问题……我就是刷着知乎,发现样式全丢了,一看charles,全部报红叉)。


就写这么多,至于Charles使用方法,可以自行百度了。