解决Charles无法正常抓包iOS 11中的Https请求

转载出自作者未完待旭
暂时不明确是从哪一个 Beta 版本开始,Charles 无法正常抓 iOS 11 Developer Beta
版的 https 请求。笔者是升级到 iOS11 Beta5 以后才发现这个问题。表现为指定抓取的 Https 请求全部

一开始以为是Charles提供的自签名根证书失效,更新到了最新版的 Charles 4.1.4,依然无解。最终才发现,iOS 是在原有安装根证书的基础上,又增加了一步信任的过程,不知道这个操作会不会带到正式版,目测可能性很高。

解决方案

  1. 按照以往版本安装 Charles 自签名根证书
  • Mac 上启动 Charles,在同一个局域网内,把 iOS 设备的代理设置到 Mac机的 Charles 代理端口上。假定 Mac 机 IP 为192.168.1.10,Charles 的默认端口号为 8888,则设置到192.168.1.10:8888。
  • 在 Safari 中访问 http://chls.pro/ssl,根据提示输入锁屏密码,安装自签名根证书。

到了这一步,iOS 10 及以下的操作系统就能正常抓到 https 的请求内容。但 iOS 11则不行,请求状态显示 Blocked。

  1. 打开【设置】>【通用】>【关于本机】>【证书信任设置】
    把刚才添加的证书后面的 Switch 打开。
解决Charles无法正常抓包iOS 11中的Https请求_第1张图片
【设置】>【通用】>【关于本机】>【证书信任设置】

此时,Charles 就可以正常捕获 Https 请求。

你可能感兴趣的:(解决Charles无法正常抓包iOS 11中的Https请求)