一、环境说明
- MacOS Sierra 10.12.4
- Charles 4.0.1
- ios 11.2.2(15C202)
- 手机与电脑在同一 WIFI 网络内
二、抓包步骤
- Charles 设置代理端口
- 手机设置访问代理
- Mac 安装 Charles 协议证书
- 手机 安装 Charles 协议证书
三、开始抓包
1. Charles 设置代理端口
- 选择菜单
Proxy -> Proxy setting...
- 设置端口,如果无需设置,默认为8888
2. 手机设置访问代理
设置前确认
- iPhone 与 Mac 在同一 WIFI 环境下
- 网络是互通的,没有防火墙阻拦(默认情况下都是通的,除非局域网防火墙、路由、电脑有设置)
2.1 获取电脑 IP
2种方法:
- 电脑终端输入
ifconfig
- 点击 Charles菜单,
help->Local IP Address
2.2 设置iPhone wifi 代理
设置->无线局域网->您的 WIFI
设置好后,iPhone 会链接上 Charles,提示您,有一个链接需要链接到您的代理.....点击 allow 即可
3. Mac 安装 Charles 协议证书
通过 1、2 步骤,你发现Charles 已经可以抓取数据了,但是数据包都是 unknow,或者乱码,这是因为访问的是https的接口,需要证书信任,所以我们需要安装证书
需要安装如下2个证书:
- Charles 菜单
Help->SSL Proxying->Install Charles Root Certificate
, 安装 Charles 的证书。按照步骤添加到信任列表中即可。 - 添加代理 443 端口监听
- Charles 菜单
Proxy->SSL Proxying Setting
- 添加 443 端口的监听,host 为 “*”(任意地址)
- Charles 菜单
4. 手机 安装 Charles 协议证书
- Charles 菜单
Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote browser
, 安装时会弹出提示,让您用手机访问地址来安装证书。
- 手机Safari访问
chls.pro/ssl
安装证书
一般情况下为 chls.pro/ssl,用 Safari 打开这个地址。根据提示安装证书即可。
默认到了为“未验证”,安装后为“已验证”
四、抓包
通过 1,2,3 步 IOS 10 及以下均可以正常抓取手机数据包。但是 IOS 11 不行。
- IOS 11设置
- 设置->通用->关于本机->证书信任设置
- 把您刚才安装的证书后面的开关打开(默认是关闭的)
- IOS 11 正常抓包
广告栏: 欢迎关注我的 个人博客