继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Charles抓包工具使用教程:HTTP和HTTPS抓包详解

慕仙7434376
关注TA
已关注
手记 85
粉丝 1
获赞 10

手把手教你用Charles抓包

日常开发过程中难免要进行抓包,查看 服务端 返回的数据是否正常,而Charles可谓是抓包利器了。除了Charles,还有像Sniffmaster这样的全平台抓包工具,它支持HTTPS、TCP和UDP协议,无需代理、越狱或root即可实现抓包,特别适合iOS和Android开发中的网络调试。

原理浅析

配置好以后,Charles实际上让电脑成了一个中间代理服务器,我们手机上的所有请求都会经过电脑,被Charles拦截,然后Charles把自己伪装成手机向我们的远程服务器地址发送请求,所以Charles能记录我们发送的请求信息;

而等服务端响应请求时,实际上是响应了Charles的请求,Charles获得服务端的请求以后,又转发给我们的手机,所以Chaerles能获得服务端响应的详细信息。

使用Charles

普通http抓包

安装好Charles后启动,我们就能看到很多的请求信息了,因为Charles启动的时候默认是抓取Mac的所有网络请求的:

image

如果要关掉,可以在顶部菜单栏 Proxy-->macProxy 勾选去掉

那我们要抓手机应用的网络请求呢?

首先我们需要让手机的所有网络请求都经过装有Charles的Mac电脑,要达到这个效果只需要给手机的网络设置一个代理,代理IP就是Mac的IP,代理的端口就是Charles中设置的端口

贴心的是,Charles还提供了查询本机IP的工具:顶部菜单 help-->Local IP Address,就能很方便的获取本机的IP地址

image

拿到电脑的IP地址以后,我们还需要知道代理的端口,Charles默认的端口是 8888,这个也可以查看和设置。打开顶部菜单 Proxy-->Proxy Setting

image

接下去就是设置手机的网络代理了,设置方式也很简单。

  • 打开手机当前连接的WI-FI详情页,可以找到一个 代理 的选项
  • 然后选择 手动,就会出现 主机名端口 的选项,分别填入上面查到的IP地址和端口号保存即可
  • 这时电脑端的Charles就会弹出一个提示,大意是选择是否监听抓包之类的,选择 Allow 即可

记过以上简单几步,charles就能抓手机的包了。

Https抓包

现在很多了网页链接都是Https的了,而上面的设置只能抓Http的请求。要想抓Https请求,我们还需要几步设置才行。

Https的一个特点是请求时会校验证书,而从文章开头我们简单介绍的charles的原理中我们也能大概知道,只需要在 Http抓包 的基础上增加一个Https的证书就可以实现Https抓包了。这个Https证书包括2个:

  • 一个是Charles本身需要配置一个Https证书,这样Charles才能和服务端正常的通信
  • 再一个就是手机端的Https证书了,这样手机才能和Charles正常通信
  • 实际上,相当于Charles从普通的Http代理服务器变成了Https服务器

对于需要更简便抓包的用户,Sniffmaster工具提供了HTTPS暴力抓包功能,无需代理或证书安装,直接插上设备即可解密HTTPS流量,支持指定APP过滤和多格式数据查看。

(1)Charles安装Https证书

首先打开顶部Charles菜单: Help-->SSL Proxying,可以看到有很多选项

  • 选择 Install Charles Root Certificate,也就是安装Charles的根证书
  • 在打开的钥匙串里面,选择 Charles Proxy CA,双击打开,选择始终信任即可

image

(2)手机安装Https证书

还是上面的同一个菜单入口,这次就要根据手机不同选择不同了 image

选择对应手机型号以后,就会出现一个提示框,里面有下载证书的地址 http://chls.pro/ssl,手机上打开对应的链接即可下载安装

(3)Charles设置

手机安装好证书以后,打开Charles的菜单: Proxy-->SSL Proxying Settings

经过以上几步,Charles就可以进行Https抓包啦!

其他

使用完Charles以后,手机上记得把代理去掉,不然手机就没办法上网了哦

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP