记录Mac下使用Charles抓包

抓包

简述

  在网络应用如后端系统,app,小程序等的开发过程中,免不了接口可能会报错,但是一般在app中或者小程序中没有便捷的console控制台,而且线上环境也不会开启调试模式,所以想看一下接口的响应就显得比较麻烦,最近,博主就遇到小程序接口报错,想查看却抓不了包详情的问题:(。每次都是找测试同学,但是测试同学也有自己的事情,所以就想着自己抓包。

  以前在windows电脑下,用过fidder工具来经常做安全测试,现在用mac电脑,fidder目前也已经支持mac系统了好像,但奈何有点贵,而且还未找到免费的用一哈,所以就换了一个Charles的工具,实战操作了一番,在此记录一下,帮助有需要的人。

环境装备

此处罗列的是个人的配置,其他参考就行

  • mac os 11.1,无线网连接
  • Charles软件安装,版本:4.6.2
  • ios14设备,连接同一无线网

开始

说明:如果只是抓取本机的http请求,那么打开Charles自动配置就可以实现抓取,如果需要抓取https的接口或者抓取手机上的网络请求,参考下面步骤操作

证书安装

  Help --> SSL Proxying --> Install Charles Root Certificate
记录Mac下使用Charles抓包
点击上述菜单后会进入到钥匙串里:
记录Mac下使用Charles抓包
如果不是完全信任名称旁边的图标会是红色的。双击charles钥匙串,选择【显示简介】,将信任改为始终信任;如下
记录Mac下使用Charles抓包

SSL代理配置

  Proxy --> SSL Proxy Settings
记录Mac下使用Charles抓包
记录Mac下使用Charles抓包
  先勾选Enable SSL Proxying,然后配置抓取路由,Add点击

Host: *
Port: 443

  • 标识所有网址都抓取,443代表Https,当然此处的host可以配置成自己想抓的网站地址前缀只抓取特定网站

至此,电脑端https就可以实现抓取了,可重新抓取试试。

如果想要实现抓取手机上App端或者小程序端的接口怎么办呢?请继续参考下面

开启代理

记录Mac下使用Charles抓包
记录Mac下使用Charles抓包
  勾选Enable transparent HTTP proxying,然后下方的端口port默认为8888,和本机端口不冲突占用就行,我这里填的是8889,记住这个端口号

手机端配置

设置手机代理

  设置手机代理需要注意手机与电脑连接的是同一个wifi,保证在同一局域网内即可,查看电脑端的IP地址,mac下进入命令窗口输入ifconfig(或者在设置->网络中查看)
  手机上点击连接上的wifi,找到代理设置,不同手机可能方式不同哈,然后选择手动,就刚刚电脑上的IP填入到此处,charles中配置的端口号填入到这里,存储,代理就配置好了。
记录Mac下使用Charles抓包
记录Mac下使用Charles抓包

恭喜,到这里的话,手机上http请求就可以实现抓取了

手机上安装证书

  要想实现手机上的https接口也可以抓取,还需要配置一下。如下,点击 Help --> SSL Proxying --> Install Charles Root Certificate on a Mobile Device or Remote Browser,接着会弹出一个info框,上面指示了手机上需要配置的ip和端口等提示信息。
  手机下载证书,将chls.pro/ssl复制到浏览器中,会提示安装证书,这里安装证书按各自手机型号安装就可以。安装好只好,一定要记得去将证书设置为信任模式,比如ios下,去设置 -> 通用 -> 关于本机 -> 证书信任设置 打开信任
记录Mac下使用Charles抓包

  OK,到这里就已经配置完成了,就可以实现在电脑端抓取手机端的http/https接口,下面来看下效果;
记录Mac下使用Charles抓包

问题总结

抓取显示unknow或乱码等问题

  出现这个问题的可能原因:

  • 首先检查证书配置是否正确,手机端以及电脑端的;
  • 是否已经信任证书;
  • 电脑端Charles代理的端口是否一致;
    还有其他问题可以参考这里,unknown、乱码问题等

  这么一操作,就不用麻烦测试同学了,后续移动端接口的问题,可以自己抓包排查一下啦~

上一篇:charles手机抓包https


下一篇:[AapacheBench工具]web性能压力测试工具的应用与实践