1. charles安装配置与抓包详解
Charles简介
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。
它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
1. 下载&安装
官网下载:https://www.charlesproxy.com/latest-release/download.do
下载完成,要是没有桌面图标可以手动进行添加
2、在线破解工具使用,在线生成 注册名和注册秘钥
工具地址:https://www.zzzmode.com/mytools/charles/
3. 下面是破解操作步骤【很关键的一步,如果不破解就无法正常使用】
打开 Charles 进入help—>Register Charles,在弹出框中输入如下信息(你注册的):
Registered Name:lingajijun
License Key:ec75fe257748c84613
输入后,点击:Resgister
出现如下图所示信息,则注册成功。
二. 配置
主要解决两个问题:
1. 访问带https网站被拦截问题
2. 访问带https网站出现乱码问题。
1. 解决访问https网站被拦截问题?
1、进入help—>SSL Proxying—>Install Charles Root Certificate
2、进入后,根据窗口提示,安装进相应位置。提示为将该证书安装到"受信任的根证书颁发机构"
3、点击安装证书,出现如下窗口,选择“本地计算机”,点击"下一步"
4、选择“将所有的证书与都放入下列存储”,并通过“浏览”选择存储位置。根据之前的提示,这里我们需要选择存储到“受信任的根证书颁发机构”
5、继续按照提示点击下一步,直到出现提示成功的窗口,则证书安装成功。
如果证书位置安装错误想删除或者想查看安装的证书,可以通过控制面板—>搜索“证书”—>管理计算机证书
找到之前安装的位置,会出现此目录下所有证书,此时可以选择删除之前安装错误的证书或者查看相关证书。
2. 解决抓取内容出现乱码问题?
安装好后的Charles打开有的页面显示为乱码,这是因为https网页的请求默认不解析,所以会呈现乱码状态。但是我们可以通过设置让Charles来解析https网页.
1、Proxy—>SSL Proxying Settings
2、进入设置窗口,Host填为,代表后面出现的任意Host,port设置443*
3、设置好后重启软件,刷新一下百度首页。这时就可以正常抓取百度首页并解析
三. 抓包
1、charles的说明
Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要先装好Java环境。
Charles的主要功能:
(1)截取Http 和 Https 网络封包。
(2)支持重发网络请求,方便后端调试。
(3)支持修改网络请求参数。
(4)支持网络请求的截获并动态修改。
(5)支持模拟慢速网络。
2、Web 抓取HTTPS协议
(1)安装ssl证书
帮助-->SSL代理--->安装charles证书
2.2 点击安装证书 -> 本地计算机 -> 将所有证书都放到下列储存 -> 点击下一步完成即可
2.3 设置设置HTTP/HTTPS协议端口
Proxy -> SSL Proxying Settiongs 在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】
添加以下Host和Port
1. *:*
2. *:443
3. *:80
解释:
在Host输入【*】表示接收任何主机
80是http协议的默认端口
443是https协议的默认端口
(2)打开抓取web端设置
Proxy -> Windows Proxy 勾选中即可
2.5 访问 www.baidu.com 能够抓取到接口并且接口下有数据表示成功
注意:如果接口下抓取是unknown表示失败 1. 协议未配置 2. 证书未安装 3. 防火墙未关闭
3. Charles手机抓包证书安装(IOS)
App抓包
Charles抓包不仅仅可以抓取来在电脑端的HTTP请求,也能够抓取来自App发出的HTTP请求,但是手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络下并且手机VPN也需要关闭
3.1 端口号设置 Proxy -> Proxy Setting 默认端口号 8888
3.2 查看自己IP地址和端口号和下载证书网址
3.3 手机端设置:
1,打开手机的设置页面;
2,选择【无线局域网】;
3,IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例)
4,点击【配置代理】–>【手动】;
5,输入本机【IP地址】以及【端口号】,根据自己情况合理配置;
6,点击【存储】
再次说明:服务器IP和端口号需要用到自己的IP和Charles上设置的端口
查看方法:Help -> SSl Proxying -> Install Charles Root Certificate on a mobile Device or Remote Browser(步骤3.2 有截图)
3.4 检验代理配置是否成功
打开浏览器验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,
那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装
通过上面的设置,虽然来自我们手机端的Http协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,
需要安装配置证书才可以,现在手机上大多数都已经切到https很少由http协议的了
3.5 Charles配置:
手机打开浏览器输入 chls.pro/ssl,如下提示,点击允许(如果下载失败,请更换浏览器重新在下)
3.6 进入设置 -> 描述文件与设备管理 -> 点击未安装的证书进行安装
3.7 安装成功后需要在 通用 -> 关于本机 -> 证书信任设置 中勾选Charles证书(针对于IOS手机)
最后,重新打开charles,手机访问网页/app就可以了
注意事项:
手机和电脑需要在同一网络下
手机VPN需要关闭
不同电脑对应不同证书,所以说你连接其他电脑需要重新下载手机证书
如果抓出来的接口显示Unknown可以把防火墙关闭,再打开charles重新抓取
=============================================================================================================================================
(3)配置抓包,填入默认代理端口 8888,且勾选 “Enable transparent HTTP proxying” 就完成了设置。
3、手机端抓包
(1)使手机和电脑在同一个局域网内
手机和电脑必须在同一个网络/wifi里,手机选择和电脑相同wifi—>长按此wifi弹框中选择修改网络—>显示高级选项—>服务器主机名输入框中输入电脑ip地址,服务器端口号填写8888——>保存即可,此时手机和电脑绑定在一起一遍电脑抓手机上请求网络数据.
第一步:手机安装SSL证书
进入"Help"->"Install Charles Root Certificate on a Mobile Device or remote Browser",点击
这时会有一个弹框,意思是要给手机设置代理,内容是192.168.1.103:8888,然后用手机浏览器打开chls.pro/ssl
点击立即下载
在手机设置->高级设置->安全里开启未知来源应用下载和外部来源应用安装
在手机文件管理里找到证书,将后缀pem改成crt,点击安装即可
这时发现手机上的HTTPS也能抓取下来了