Mac上使用的抓包工具中,相比Tcpdump,Wireshark,个人更喜欢 Charles。(官网http://www.charlesproxy.com/可下载到最新版本)
1.相关配置
选择Proxy | Proxy Settings,弹出proxy设置选项卡,勾选Enabling transparent HTTP proxying
勾选Enable SSL Proxying,在Location部份选择add,按如下图添加,抓取任意站点、443端口的数据
2.Mac安装SSL证书
3.iPhone端连接
可以看到当前电脑的IP地址为:192.168.199.249。
将iPhone连接到与电脑相同的WiFi,在iPhone设置中:无线局域网 -> 已连接WiFi右边的Info详情图标 -> HTTP代理 -> 手动 -> 设置HTTP代理:
设置完成之后,打开Safari随便访问一个网页,初次设置代理的话,Charles会弹出一个iPhone请求代理的确认框,点击Allow即可。然后在Charles上就可以看到iPhone上的HTTP请求了。为了避免Mac上的请求过多影响对被代理iPhone上HTTP请求的查看和调试,可以在Charles取消Mac的代理:Menu -> Proxy -> 取消勾选Mac OS X Proxy 即可。
4.伪造证书欺骗
在被代理的iPhone上打开Safari,访问http://www.charlesproxy.com/getssl,会弹出安装描述符文件的界面,该描述文件包含了Charles根证书:
证书安装完成后即可在Charles上抓取HTTPS的请求。
更多端的设置证书方法可以参考这篇官方文档https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
参考资料
1.Charles抓取HTTPS数据包 http://legendtkl.com/2015/11/30/charles-https/
2.Charles SSL PROXYING http://www.charlesproxy.com/documentation/proxying/ssl-proxying/
3.Charles SSL CERTIFICATES https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/