Charles使用

Charles使用

1. Charles简介

Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器。当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

Charles通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charles的时候要先装好Java环境

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

Charles 主要的功能包括:

截取 Http 和 Https 网络封包。

l 支持重发网络请求,方便后端调试。

l 支持修改网络请求参数。

l 支持网络请求的截获并动态修改。

支持SSL代理。可以截取分析SSL的请求。

支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。

检查HTML,CSS和RSS内容是否符合W3C标准。

2. Charles安装

 

安装Charles需要先安装配置好Java环境,然后下载安装即可使用。

官网下载:https://www.charlesproxy.com/download/

如下图所示,根据需要下载对应的安装包:

下载完成后点击安装包安装即可(建议安装目录自己新建一个Charles文件夹,不要安装在C盘中)

安装完成下载后打开软件:

软件的主页面:

3. Charles抓包(windows浏览器)

3.1 Charles抓取http包

proxy -> windows proxy (勾选则抓取计算机的请求,安装完成后默认勾选)
proxy -> Mozilla Firefox proxy (勾选则抓取计算机上 Mozilla、Firefox浏览器的请求)
app 进行数据抓取的场景,这两项 不勾选 。

打开浏览器,登录招生系统,抓取登录的包:

点击总结,可以看到具体的请求:

点击查看请求内容(也可以通过左侧树状图查看):

抓取json格式的包(新建学校):

3.2 Charles抓取HTTPS的包

打开Charles,访问www.baidu.com,发现抓取的包提示unknown,是因为包是HTTPS,无法抓取。抓取HTTPS的包需要安装证书

安装证书:

Help>>SSL Proxying>>Install Charles Root Certficate>>安装证书

选择本地计算机>>下一步(N)

选择将所以的证书都放入下列存储(P)>>浏览(R)...>>受信任的根证书颁发机构>>确定>>下一步(N)

选择完成即可。

如果浏览器未安装证书,需要给浏览器也安装证书(先在设置查看是否安装有证书):

Charles-》Help-》SSL Proxying-》Install Charles Root Certificate on a Mobile Device or Remote Browser,如下图

根据提示,在浏览器地址栏输入“chls.pro/ssl”下载证书

在浏览器上安装证书后,查看浏览器上的证书(Chrome为例):

浏览器和Charles证书全部安装完成后

进入Charles - 》 Proxy - 》 SSL Proxying Settings

勾选复选框,点击Include区域的Add,在Host区域输入*.*>>OK

点击“Add”按钮,在弹出框的 “Host” 和 “Port” 都输入“*”,最后点击OK,根据提示,这样配置可以抓取所有的https包

抓取HTTPS配置完成了,可以访问www.baidu.com试一下

4. Charles抓包(APP)

4.1 Charles抓取http的包

抓取APP上http的包,首先通过Help>>SSL Proxying>>Install Charles Root Certficate安装好证书

证书安装完成后,设置手机网络代理,打开Charles,菜单栏Proxy->Proxy setting,设置端口号(端口号默认为8888),勾上Enable transparent HTTP proxying

然后查看本机ip地址:

点击charles的help->Local IP Address查看,或者在电脑上进入doc命令模式,输入ipconfig命令即可查看ip地址。

知道了本地ip和端口后就可以进入手机网络代理的设置

手机连接wifi(一定要和电脑在同一个局域网才行),打开你连接的wifi的高级设置,苹果是点击你连接wifi后面的感叹号,将代理模式设置为手动,之后将刚刚查看的ip和端口号填入

完成手机代理设置以后Charles会弹出一个对话框,选择允许抓取。

这样就可以抓取APP上面的http请求的包了

4.2 Charles抓取HTTPS的包

如果想要抓取HTTPS的包,就要给手机安装证书,Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser,会给出具体的安装步骤,如下图

手机打开浏览器,输入chls.pro/ssl ,下载证书,安装。如果是iphone,输入网址后,提示在设置里安装描述文件,打开设置-》通用-》描述文件-》安装,安装完打开设置-》通用-》关于本机-》证书信任设置-》打开

注意1>打开这个网址 chls.pro/ssl 是要在能抓http包的基础上去安装,若打开不了网址,请检查是否设置好HTTP代理和打开电脑上的Charles。

注意2>若检查完以上步骤还是提示抓包有误,则需要在设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书

配置到这里之后,在Charles: Proxy->SSL Proxy Settings里添加想抓的站点,(如果在电脑上抓取HTTPS的包已经设置了,可以不用管)

通过Charles要想抓取某个https协议的内容,要SSL Proxy Settings选项里面添加某个https协议的网址和端口号即可,想要截取所有HTTPS协议,如下图

端口也可以设置为*,代表所有

原文地址:https://www.cnblogs.com/wwho/p/12806807.html