暂时不明确是从哪一个 Beta 版本开始,Charles 无法正常抓 iOS 11 Developer Beta
版的 https 请求。笔者是升级到 iOS11 Beta5 以后才发现这个问题。表现为指定抓取的 Https 请求全部
一开始以为是Charles提供的自签名根证书失效,更新到了最新版的 Charles 4.1.4,依然无解。最终才发现,iOS 是在原有安装根证书的基础上,又增加了一步信任的过程,不知道这个操作会不会带到正式版,目测可能性很高。
解决方案
- 按照以往版本安装 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。
- 打开【设置】>【通用】>【关于本机】>【证书信任设置】
把刚才添加的证书后面的 Switch 打开。
此时,Charles 就可以正常捕获 Https 请求。
网友评论