本文主要介绍mac下如何安装网络抓包工具以及如何实现抓包。在windows下有一款不错的抓包工具Fidder,但是由于是C#编写的,无法再mac下运行,因此,需要换一款抓包软件:Charles。
Charles是一款Java语言编写的抓包工具,因此可以跨平台使用,可以在win/linux下使用,java编写的当然需要安装jdk了。同时还有一个问题,就是收费的,50美刀,折合人民币300大洋~
1.准备工作
OS: osx10.11.6
JDK:1.7.0_79
Charles:charles v4.0.2 下载路径:https://pan.baidu.com/s/1i5GAYYp
2.安装
解压zip文件后,里面有几个文件,直接把Charles.app拖到Applications里面就ok
安装好了之后,目前是非破解版,需要替换jar包。
把charles.jar复制到目录 /Applications/Charles.app/Contents/Java下,替换原有的charles.jar
3.注册方法:参考 使用方法.rtf
4.抓包
http抓包:
1.打开charles程序
2.打开bash,输入 ifconfig 查看当前网络ip。
3.打开ios设置,进入当前wifi连接(需要和mac在同一个局域网里),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.2.106,端口填8888:
4.打开safari浏览器进行网络请求
5.charles弹框,设置允许手机ip连接即可。
https抓包:
http的抓包就完成了,不过,在抓https的时候,会发现乱码。引起的原因不是charset不对,而是没有配置ssl证书导致的。接下来就需要配置ssl证书
1.charles安装证书:
点击 Install Charles Root Certificate,然后会打开系统自带的钥匙串app,点击左侧证书一栏
选择Charles Proxy CA证书,双击,出现如下弹框:
点击信任,修改为始终信任
这样charles的ca证书就配置好了。
2、安装ios端证书:
charles-help-SSL Proxying
会出现一个弹框:
弹框的意思是需要在手机上设置当前wifi的代理为弹框中的地址,然后打开safari浏览器,地址栏输入chls.pro/ssl,进行安装证书。
证书安装完毕后,然后在Charles的工具栏上点击Proxy按钮,选择Proxy Settings…,配置端口:
点击ok保存。
还没完。。。。。点击SSL Proxy Setting
配置需要监听的域名:
点击add,出现弹框:
输入要匹配的域名,不用加https协议,直接域名即可,端口写需要监听的端口。
如果需要监听所有,则在host填 *,port也填 * 即可。
3.打开safari,输入 https://wy.guahao.com :
发现没有静态样式,缺少js,css等。查看charles:发现出现了unknown ca
表急,不是配置问题,是apple 开启了 ats后,证书没有被完全信任导致的。
so~
回到手机,设置--通用--关于本机,拉到最下面,证书信任设置,把没有信任的ca证书信任了,然后回到浏览器刷新,会发现页面正常显示了,查看charles,发现抓到了https的包:
到此,mac下的charles就配置完了,可以愉快的开始玩耍了~~