Charles使用教程

0. 前言

对于互联网的开发人员和测试人员来说,抓包工具对于我们的工作都是非常有帮助的,而Charles是一款非常优秀的抓包工具。

Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器。

Charles 通过将自己设置成系统的网络代理服务器,使得所有的网络请求都通过它来完成,从而实现了网络封包的截取和分析。技术人员可以通过Charles查看的信息包括request, response和HTTP headers等。

本机安装的 Charles 版本是 Windows 平台下的 Charles 4.2.7。

1.PC Web 抓取HTTP协议

启动Charles后,Charles会自动设置成浏览器的代理,不需要进行过多的设置。通过PC浏览器浏览网页时,浏览器会发送网络请求和接收响应,Charles就会直接抓取到这些请求信息和响应信息。

开启抓包和关闭抓包:

Charles使用教程_第1张图片

Charles使用教程_第2张图片

开启抓包和关闭抓包的开关,是上图红框中的圆形按钮。黑色圆点表示【关闭】抓包状态,红色圆点表示【开启】抓包状态。

Charles使用教程_第3张图片

上图是抓到的请求信息和响应信息,上半部分是请求,下半部分是响应。

2. PC Web 抓取HTTPS协议

虽然现在Charles能够直接抓包了,但是https协议的包是不能正常显示的,会显示unknown,需要安装SSL证书才可以。

安装SSL证书的步骤:

1.点击顶部菜单栏【Help(帮助)】–>选择【SSL Proxying(SSL代理)】,点击【install Charles Root Certificate(安装Charles Root证书) 】安装Charles根证书即可;

Charles使用教程_第4张图片

证书安装一直下一步就可以。

2. 点击【Proxy(代理)】–>【SSL Proxying Settings…(SSL代理设置)】

Charles使用教程_第5张图片

3. 在弹出选项卡中,勾选【Enable SSL Proxying(启用SSL代理)】点击【add(添加)】,在Host输入【*】表示接收任何主机,在Prot输入【443】最后点击【ok】保存。

具体参考下图步骤1到步骤6:

Charles使用教程_第6张图片

Charles使用教程_第7张图片

Charles使用教程_第8张图片

3.App抓取HTTPS协议

Charles不仅仅可以抓取来在PC电脑端的HTTP/HTTPS请求,也能够抓取来自App发出的HTTP/HTTPS请求。

手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络下,也就是链接同一个wifi。

电脑端配置:

1. 在电脑上启动安装好的Charles抓包工具;

2.点击【Help(帮助)】–>【local IP Address(本地IP地址)】获取下ip地址。

Charles使用教程_第9张图片

Charles使用教程_第10张图片

也可以直接通过电脑自带的CMD命令来获取电脑IP【ipconfig】。

Charles使用教程_第11张图片

3. 点击【Proxy(代理)】–>【Proxy Settings...(代理设置)】,设置下http代理端口号“9999”,也可以使用默认值,一般是“8888”。

Charles使用教程_第12张图片

手机端设置:(安卓和IOS)

1.打开手机的设置页面;

2.选择【无线和网络】;

3.选择【WLAN】;

4.IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;

5.IOS点击【配置代理】–>【手动】;安卓点击【修改网络】,再点击【显示高级选项】,点击【代理】【手动】;

6.输入本机【IP地址(10.230.112.67)】以及端口号【8888】,这是我本机的,根据自己情况合理配置;

7.IOS点击【存储】;安卓点击【保存】;

Charles使用教程_第13张图片

电脑端Charles弹出链接请求后,点击【Allow(同意)】

Charles使用教程_第14张图片

以下为IOS手机端的详细设置:

Charles使用教程_第15张图片

Charles使用教程_第16张图片

Charles使用教程_第17张图片

Charles使用教程_第18张图片

接下里验证下手机请求,打开手机App,或者手机浏览器。当我们看到Charles里能抓到这个连接,就说明配置没问题。

如果看到unknown,那是因为我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装。

Charles使用教程_第19张图片

上图是https包显示unknown:

4.抓取手机HTTPS协议

通过上面的设置,虽然来自我们手机端的Http协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,需要安装配置证书才可以。

Charles配置步骤:

1. 点击顶部菜单栏【Help(帮助)】–>选择【SSL Proxying(SSL代理)】,点击【install Charles Root Certificate(安装Charles Root证书)】安装Charles根证书即可;(上面第2部分已操作的可忽略)

2. 点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser(在移动设备上或远程浏览器安装证书)】即可;

Charles使用教程_第20张图片

点击上图的 Install Charles Root Certificate on a Mobile Device or Remote Browser(在移动设备或远程浏览器上安装Charles Root证书) , 会给我们安装提示。

Charles使用教程_第21张图片

上面的提示框意思是:在手机设置好代理后,在手机浏览器中访问 chls.pro/ssl 下载证书。

这里需要注意的是,有的手机可能会提示:无法安装该证书,因为无法读取证书文件。

解决方法:不要使用系统的浏览器下载,使用第三方浏览器下载,。例如 UC 或者 QQ 浏览器。

下载完成后,证书文件名可能是:charles-proxy-ssl-proxying-certificate.pem

证书下载完成后,在手机上安装该证书,流程如下:

打开手机 设置 -> 更多设置 -> 系统安全 -> 从SD卡安装 , 然后输入你自定义的证书名称即可:

Charles使用教程_第22张图片

点击 “确定” 按钮,有些手机可能需要输入密码凭证,输入你的手机密码即可。

电脑和手机上证书都安装完毕后,在Charles上开启 SSL Proxy (Proxy -> SSL Proxying Settings )(代理 --- SSL代理设置)

Charles使用教程_第23张图片

电脑和手机的安装配置完成。

鸣谢:特别感谢所有在CSDN等网站热爱技术、乐于分享的工程师们。

说明:本文只是个人学习之用。

你可能感兴趣的:(ssl,https,服务器)