0、介绍Charles 抓包
Charles是一款很强大的抓包工具,现在记录下来分享给大家。常用的有以下几款功能:
1.支持配置抓取定向地址的网络请求
- 打开charles,打开Proxy->Recording Settings
- 点击add,可以将需要抓取的地址添加进去,这边抓取淘宝的请求,如下图添加,点击“OK”,然后浏览器访问www.taobao.com:
- 发现Charles抓取到了*.taobao.com的请求,如下图所示,点开一个请求,里面都是unkown,而且左侧有个“🔒”的符号:
说明:因为虽然之前添加了https://*.taobao.com过滤配置,但是Charles默认抓取的是http请求,所以对于https请求需要单独开启SSL配置
- 打开Proxy->SSL Proxying Settings
- 点击add,将*.taobao.com添加进去,https的端口默认是443,然后点击OK
- 重新访问www.taobao.com,发现Charles中抓取到了相关的信息。
(有些朋友到这边仍然不能抓取https的包,可以查看钥匙串中Charles Proxy CA证书是否已经被设为“信任”,如果没有,则双击,设为“始终信任”)
2.支持将服务器上的请求映射到本地进行代码调试
有些开发人员在某些情况下,需要定位线上问题的时候,除了使用tomcat的远程debug,但是这个需要在服务器启动脚本中增加参数。
Charles有一个功能,很简单就可以将线上的请求映射到本地,进行调试
- 打开Tools->Recording Settings
- 点击add,将服务器上进程的地址和端口映射到loaclhost,然后在本地启动服务,进行debug即可。
3.手机上配置代理,抓取手机上的请求信息
有些客户端测试的时候,需要查看请求信息,那么可以使用Charles来抓取,如果是https请求,需要在手机上安装证书并信任
- 打开Help->SSL Proxying->Install Charles...
- 打开手机WIFI,连接和电脑相同的WIFI,然后选中该无线网,添加http代理,即上图中的10.242.131.136.8888,然后访问chls.pro/ssl下载并安装证书
- 进入通用->关于本机->证书信任设置,将刚刚安装的证书设为信任即可。
如果无法成功抓包,请核实下面几点
1、检查Charles 配置
具体的解决方案为在proxy中的SSL Proxying setting中钩上Enable SSL Proxying,并且将要解析的host加上。如下图:
2、配置手机证书
3、iPhone信任证书
3.1通用-描述文件-安装
3.2通用-关于本机-证书信任设置
设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.