问题:
iOS11使用Charles抓包,手机设置代理和安装证书之后仍然不能抓包。
原因:
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 请求。
欢迎访问: