如何用charles进行https抓包

项目由http转成了https,遇到个问题是用charles不能抓包的问题。按照抓取http包的方式搭好了环境后,在浏览器里出现了这样的提示。

Paste_Image.png

charles截包的信息如下

Paste_Image.png

为什么会出现这样的情况呢?原因是charles相当于一个中间人代理,用户的浏览器如果直接访问目标服务器,验证CA证书有效,所以不会出这种提示,但是在中间加入charles代理后,实际上用户浏览器就会验证Charles提供的证书,这里显然是验证不过的,所以就会出现这种提示。我们必须手动在客户端导入charles的证书,才能不出现这个信任提示,下边介绍下如何去除这种提示的方法。

1.以小米note MIUI 7,mac版本Charles 3.11.1为例,首先在mac上生成charles的root certification

Paste_Image.png

2.将导出的crt文件上传到手机上,并且进行安装。小米note不能通过文件管理器点击crt文件进行安装,需要进入设置->安全和隐私->从存储设备安装

Paste_Image.png

3.正常通过验证,可以截取到https的明文数据了

Paste_Image.png

4.更多端的设置证书方法可以参考这篇官方文档 https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

参考资料

1.mac下的抓包工具Charles

2.Charles抓取HTTPS数据包

3.手机上安装证书的方法

4.Charles SSL PROXYING

5.Charles SSL CERTIFICATES