MacOS Charles 抓取Iphone的 https 请求 解决 unknown

一、环境说明

  1. MacOS Sierra 10.12.4
  2. Charles 4.0.1
  3. ios 11.2.2(15C202)
  4. 手机与电脑在同一 WIFI 网络内

Charles 下载地址

二、抓包步骤

  1. Charles 设置代理端口
  2. 手机设置访问代理
  3. Mac 安装 Charles 协议证书
  4. 手机 安装 Charles 协议证书

三、开始抓包

1. Charles 设置代理端口

  • 选择菜单 Proxy -> Proxy setting...

Charles 抓取iPhone的 https

  • 设置端口,如果无需设置,默认为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个证书:

输入图片说明

  1. Charles 菜单 Help->SSL Proxying->Install Charles Root Certificate , 安装 Charles 的证书。按照步骤添加到信任列表中即可。
  2. 添加代理 443 端口监听
    • Charles 菜单 Proxy->SSL Proxying Setting
    • 添加 443 端口的监听,host 为 “*”(任意地址)

输入图片说明

输入图片说明

4. 手机 安装 Charles 协议证书

  1. Charles 菜单 Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote browser , 安装时会弹出提示,让您用手机访问地址来安装证书。

输入图片说明

  1. 手机Safari访问 chls.pro/ssl安装证书

一般情况下为 chls.pro/ssl,用 Safari 打开这个地址。根据提示安装证书即可。

输入图片说明

默认到了为“未验证”,安装后为“已验证”

四、抓包

通过 1,2,3 步 IOS 10 及以下均可以正常抓取手机数据包。但是 IOS 11 不行。

  • IOS 11设置
    • 设置->通用->关于本机->证书信任设置
    • 把您刚才安装的证书后面的开关打开(默认是关闭的)
    • IOS 11 正常抓包

广告栏: 欢迎关注我的 个人博客

猜你喜欢

转载自my.oschina.net/u/3767256/blog/1791706