手把手教你用 Charles 抓包
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
日常开发过程中难免要进行抓包,查看服务端返回的数据是否正常,而 Charles 可谓是抓包利器了。
下载安装地址:https://www.charlesproxy.com/
原理浅析
配置好以后,Charles 实际上让电脑成了一个中间代理服务器,我们手机上的所有请求都会经过电脑,被 Charles 拦截,然后 Charles 把自己伪装成手机向我们的远程服务器地址发送请求,所以 Charles 能记录我们发送的请求信息;
而等服务端响应请求时,实际上是响应了 Charles 的请求,Charles 获得服务端的请求以后,又转发给我们的手机,所以 Chaerles 能获得服务端响应的详细信息。
使用 Charles
普通 http 抓包
安装好 Charles 后启动,我们就能看到很多的请求信息了,因为 Charles 启动的时候默认是抓取 Mac 的所有网络请求的:
如果要关掉,可以在顶部菜单栏Proxy-->macProxy
勾选去掉
那我们要抓手机应用的网络请求呢?
首先我们需要让手机的所有网络请求都经过装有 Charles 的 Mac 电脑,要达到这个效果只需要给手机的网络设置一个代理,代理 IP 就是 Mac 的 IP,代理的端口就是 Charles 中设置的端口
贴心的是,Charles 还提供了查询本机 IP 的工具:顶部菜单help-->Local IP Address
,就能很方便的获取本机的 IP 地址
拿到电脑的 IP 地址以后,我们还需要知道代理的端口,Charles 默认的端口是8888
,这个也可以查看和设置。打开顶部菜单Proxy-->Proxy Setting
接下去就是设置手机的网络代理了,设置方式也很简单。
打开手机当前连接的 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 服务器
(1)Charles 安装 Https 证书
首先打开顶部 Charles 菜单:Help-->SSL Proxying
,可以看到有很多选项
选择
Install Charles Root Certificate
,也就是安装 Charles 的根证书在打开的钥匙串里面,选择
Charles Proxy CA
,双击打开,选择始终信任即可
(2)手机安装 Https 证书
还是上面的同一个菜单入口,这次就要根据手机不同选择不同了
选择对应手机型号以后,就会出现一个提示框,里面有下载证书的地址http://chls.pro/ssl
,手机上打开对应的链接即可下载安装
(3)Charles 设置
手机安装好证书以后,打开 Charles 的菜单:Proxy-->SSL Proxying Settings
经过以上几步,Charles 就可以进行 Https 抓包啦!
其他
使用完 Charles 以后,手机上记得把代理去掉,不然手机就没办法上网了哦
版权声明: 本文为 InfoQ 作者【AntDream】的原创文章。
原文链接:【http://xie.infoq.cn/article/dfb25886b2c815d6920d7a9df】。文章转载请联系作者。
评论