美文网首页iOS DeviOS Developer
解决Charles无法正常抓包iOS 11中的Https请求

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

作者: 未完待旭 | 来源:发表于2017-08-21 17:56 被阅读4409次

暂时不明确是从哪一个 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 就可以正常捕获 Https 请求。

转载请注明出处,原文地址:http://www.jianshu.com/p/4005cf4f370d《解决Charles无法正常抓包iOS 11中的Https请求》

相关文章

网友评论

  • 6dcd11973bbb:谢谢,最后一步说明解决我的问题
  • panv587:抓取https的怎么还是红色的X呢?你能正常抓去吗
    未完待旭:@xyxzfj iOS里面使用https有多种证书,一种是从CA那边获取授信证书,这类能用Charles颁发的自签名证书在设备上授信,从而进行抓包。另一种是开发者自己签署的证书,通过客户端内部携带公钥的形式,这类https通信是无法通过上述方法抓包的
    xyxzfj:同有此问题。已经在iOS通用“描述文件与设备管理”中添加了Charles Proxy CA,并在关于本机“证书信任设置”中开启了该证书。在iOS Chrome中发https请求,可以抓包,但URL左侧显示红色感叹号,点开底部显示“服务器的证书不受信任”。微信中发https请求,抓包去到“weinxin110.qq.com”。 是不是微信作了证书固定,不相信后续往系统添加的根证书?
    未完待旭:@M13M13 我这边都正常

本文标题:解决Charles无法正常抓包iOS 11中的Https请求

本文链接:https://www.haomeiwen.com/subject/vqkhdxtx.html