Mac安装Charles抓包工具


一、下载安装 下载地址:https://xclient.info/search/s/charles/  文件密码:xclient.info   二、激活

Name: Just For Testing

Serial: 230ADA2020DFBD108E

  三、 配置 3.1 证书安装 Help->ssl proxying 3.1.1 Charles Root Certificate 3.1.2 Charles Root Certificate in iOS Simulators 3.1.3钥匙串中改为始终信任  
  1. iphone证书安装
3.1.4 打开Charles Root Certificate on a Mobile Device or Remote Browser,会出现如图 !!!!!!!!!!先配置代理,跳转3.2/3.3配置代理,配置完成后手机访问 http://chls.pro/ssl 即会弹出框询问是否安装,同意安装即可。 不要高兴太早,安装完成要在手机设置->通用->关于本机->证书信任设置->charles Proxy CA,勾选开关,证书才生效。 3.2 代理设置proxy下拉菜单 可以设置抓包数据类型,包括http与socket数据。可以根据需要在proxies栏下勾选。 如果需要抓Mac上的浏览器数据,需要在macOS栏,勾选http. 3.3 手机使用代理 手机连接局域网下wifi,与charles必须为同一外网下。 (1)或者设置手动代理 输入charles的ip与端口即可   (2)自动代理 在已连接的wifi上点击更多,进入配置代理页。勾选自动,在输入框URL中输入: http://chls.pro/10.10.11.235:6666.pac 即设置了自动代理。

查看:3.1.4设置手机端配置

3.4 HTTPS抓包 HTTPS抓包,需要经过SSL。 Proxy->SSL Proxy setting 会打开如下界面。点击Add,Host栏与Port栏都填空(表示抓所有SSL请求),确定即可。 注:如果未配置此项,在访问https数据的时候,你会发现访问失败,Structure栏显示小锁标识。 3.5 可接入控制 charles可以通过Access control Settings来控制允许访问列表。如果未允许本机器IP,访问不会走Charles,当然也抓不了包。 image 未配置过时,列表为空。当手机第一次访问时,charles会弹出是否允许弹框,点击allow,即同意此手机连接。 此手机的ip地址也会出现在Access control Settings的列表中。 我一般配置为允许所有,在Access control Settings中Add,输入0.0.0.0/0,添加即可。     ================================扩展探索项================================ 3.5 Map Local 这个功能相当有用,可以把数据请求的response从本地文件获得。 比如:我有一个系统升级功能,升级方式upgradeType有三种:强制/普通/静默,然而,自己想要测试验证三种场景,就得麻烦后台去修改数据。这时候,Map Local可以上场了。
  1. 保存远端response:
  保存返回值
  1. 设置Map Local:
  添加   选择json文件
  1. 打到保存的json文件,修改返回值:
  修改 然后重新请求,就会走你修改后的本地文件数据了。再也不用频繁麻烦后端同学了,自己就能模拟各种数据场景。 如何关闭? charles工具栏 -> Tools -> Map Local,点击进入   Map Local控制栏 4. 一些常见问题 4.1 真机验证应用时卡住? 作为苹果开发,很多时候需要通过Xcode把自己做的小Demo运行到手机上,用的又是免费的个人证书,需要在手机上信任证书,及验证应用。如果你设置了抓包,ssl是验证不过的。 解决办法: ssl时,只抓指定的网址,不要设置全抓* 。charles工具栏 -> Proxy -> SSL Proxy Settings,只抓项目后台地址。 image 5. 总结 把上面步骤过了,就可以愉快的抓https了。总结一下:
  1. 证书:Mac/模拟器/iphone证书(不要忘记信任证书)。
  2. Proxy setting勾选HTTP与SOCKS。
  3. 同一局域网。
  4. 手机设置代理。
  5. Access control Settings同意接入
  6. SSL proxy添加星。
当然,charles功能不仅仅于此,非常强大,还有很多功能等待发现。如:断点/拦截,返回修改后数据/模拟断网/模拟网络差。  
mac