实现目标
在Mac 上 对 iOS 真机 和 模拟器 进行 Http/Https抓包
使用工具
Mac 上 Charles 4.2
安装 参考链接 1. 和 链接 2.
抓包 http 请求
(1) 保证真机 和 Mac 使用 同一个 局域网(wifi),查看Mac IP地址,例如 192.168.x.xx
(2) 选择Proxy | Proxy Settings,弹出proxy设置选项卡,勾选Enabling transparent HTTP proxying
真机 点击设置 —> 无线局域网—>指定wifi—>设置代理
服务器 填写 (1)获取的IP
端口号 填写 8888 (Charles 默认 http proxy port 为 8888,可以在 charles —> Proxy—>Proxy Settings 修改 http proxy port
)
(3)真机配置完成,打开Charles 开始抓包前 会弹出 是否允许抓包弹框 点击允许 至此真机抓包正常 可按需求 配置查看 request response 相关数据信息
(4)模拟器抓包 需要把电脑设置为代理:
抓包 http 请求 charles —> Proxy—> macOS Proxy 勾选 即可,这样 ,你通过浏览器请求的网址都会出现在这里,iOS模拟器的所有的网络请求也会出现在这里。
抓包 https 请求
charles 也要遵守 https 协议,因此需要下载官网 CA证书
证书下载地址:参考图,位置可能在Help里 多找找菜单栏,主要是在SSL Proxying 里,里面有好多证书,很方便我们以下的各种操作
(1) Mac 到 参考 3. 下载根证书即CA证书 或者 SSL Proxying 中 Install Charles Root Certificate 即可 非常方便,用钥匙串打开,此时是不被信任的,点击右键,显示简介—>信任选项 第一项—>改为“始终信任”
如图:
-->
(2)手机安装证书
SSL Proxying 中点击Install Charles Root Certificate On a Mobile or...这项 会弹框,弹框会提示下载地址,
然后复制链接 在手机 Sarfri 浏览器中打开 会提示下载相关操作,按提示处理即可。(网上会有其他下载方式,但是我操作不好使,仍然不能抓包 只有按照Charles提示的下载地址才行)
特殊在 如果是iOS11以上 手机 要打开信任开关,设置-->通用-->关于本机-->证书信任设置--> 指定证书开关开启
其他的都是通过网上其他攻略下的 都不好使。。。所以就跟着Charles提示即可
(3) SSL Proxying Settings 勾选Enable SSL Proxying,在Location部份选择add,按如下图添加,抓取任意站点、443端口的数据
* 代表任意站点,也可以指定站点
(4)同 http 抓包步骤 (1)(2)
至此,当手机重新 发出https请求时候,抓包结果就能不再是 unknown了 能够正常解析了。
模拟器?此时只要 Install Charles Root Certificate in iOS Similaors 即可正常抓包
参考:
1.https://www.charlesproxy.com/download/ (官网 下载小花瓶)
2. http://charles.iiilab.com (小花瓶 安装攻略)
3.https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/(根证书地址)
4.https://segmentfault.com/a/1190000005070614 (配置 参考)