主要内容:
一、charles下载与安装遇到的问题
二、抓取https请求:MAC端、iOS设备、安卓设备
三、使用过程中的可能问题
1、下载charles
2、其他渠道下载的应用在使用时提示 安装包受损,无法使用
原因:mac系统默认不支持AppStore外的其他渠道、其他开发者的应用。
***提示 应用损坏 的解决方法***
步骤:
【偏好设置】-【安全性与隐私】-【底部的锁头图标】(这样才允许更改)-【允许从以下位置下载的应用】勾选“任何来源”
Mac os10.12及以上的系统需要先做以下操作才会出现“任何来源”的选项:
1)打开终端【Terminal.app】
2)输入 sudo spctl --master-disable
3)按 回车键
4)输入密码,按回车键确认执行(此时密码不会显示,直接输入就好)
***提示 身份不明的开发者 的解决方法***
将软件放入【应用程序】-右击软件,选择【打开】-弹窗中选择【打开】
3、抓取Mac上的请求
原因:未配置时,抓取的包内容可能显示乱码,特别是https请求。(下同,不赘述。)
解决:
1)安装SSL证书
点击charles后,系统菜单位置的【Help】-【SSL Proxying】-安装证书(凡带有 Install 字样的都安装):
【Install Charles Root Certificate】——用于抓取Mac端上的请求
【Install Charles Root Certificate in iOS Simulators】——用于抓取 iOS设备上的请求
【Install Charles Root Certificate on a Mobie Device or Remote Browser】——用于抓取安卓设备上的请求和其他远程浏览器上的请求
2)信任所安装的证书
【启动台】-【钥匙串访问】- 钥匙串:登录/... ;种类:证书 -找到对应的charles证书 - 双击后可看到【信任】- 展开该项后设置成 始终信任
3)开始抓包
点击charles,系统菜单位置的【Proxy】-【macOS Proxy】——开启本机Safari浏览器的抓包
注:
a、【Proxy】-【Proxy Settings】:抓包的详细配置
b、若无数据,可重启charles和浏览器。尽可能用系统自带的safari浏览器发送请求,其他浏览器可能抓不到。
4、抓取iPhone的请求
1)开代理
手机连接和mac系统处于同一网段的WiFi,设置代理:服务器为Mac系统的ip,端口填写charles里设置的端口(【Proxy】-【Proxy Settings】-【Proxies】-Port);
mac端的Charles需要允许接入
**查看mac的ip、DNS
WiFi图标-底部-【打开网络偏好设置】-底部的【高级】-TCP/IP、DNS
DNS还可以通过终端(类似win下的cmd)查看,输入 cat /etc/reslov.conf,回车后即可见 DNS
2)安装charles特定的证书
在浏览器中输入 chls.pro/ssl,下载安装
3)信任证书(以下位置因iOS系统的不同而不同,只列出大概位置)
【设置】-【通用】-【描述文件与设备管理】-信任charles的证书
4)开始抓包
点击charles,系统菜单位置的【Proxy】-【macOS Proxy】
5、抓取安卓系统上的请求
方法一:同iPhone
方法二:
1)安装证书
网上:Mac端:【Help】-【SSL Proxying】-【Save Charles Root Certificate】,保存下来后,重命名为 charles.pem(证书后缀为pem)。然后传至手机,下载安装。
2)若提示“无可用的应用来打开它”,则手机端:【设置】-【更多设置】-【系统安全】-【从SD卡设备安装】,选择 charles.pem 进行安装
3)开代理
手机连接和mac系统处于同一网段的WiFi,设置代理:服务器为Mac系统的ip,端口填写charles里设置的端口(【Proxy】-【Proxy Settings】-【Proxies】-Port)
4)开始抓包
点击charles,系统菜单位置的【Proxy】-【macOS Proxy】
6、可能问题:
连接久了后,手机会断开与charles的连接,可重启charles、手机WiFi等,重新建立连接。