普通视图

发现新文章,点击刷新页面。
昨天 — 2026年2月27日首页

不越狱能抓到 HTTPS 吗?在未越狱 iPhone 上抓取 HTTPS

2026年2月27日 15:49

这个问题在 iOS 调试中反复出现。

很多人听到“HTTPS”“证书校验”“SSL Pinning”,第一反应就是,是不是必须越狱?

这篇文章在不越狱设备上分别测试三种情况:

  • 普通 HTTPS
  • 启用证书校验的 App
  • 启用双向认证的 App

环境:

  • iPhone(未越狱)
  • 一台 Windows + 一台 Mac
  • 代理工具(Charles / Proxyman)
  • 设备本机抓包工具 SniffMaster

一、代理抓包:不越狱的第一条路径

先测试最基础的方式:代理抓包。

操作步骤

  1. 启动 Charles(或 Proxyman)
  2. 确认代理端口正在监听
  3. iPhone 与电脑连接同一 Wi-Fi
  4. 在 iPhone 的 Wi-Fi 设置中填写代理地址与端口
  5. 在手机上安装并信任证书
  6. 用 Safari 打开一个 HTTPS 网站

如果 Safari 能完整显示请求和响应,说明:

  • 代理路径没问题
  • HTTPS 解密生效
  • 不需要越狱

二、普通 App 的 HTTPS 测试

在同样的代理环境下,打开一个普通测试 App。

结果:

  • 请求可以出现在 Charles 中
  • HTTPS 内容可正常解密
  • 请求体与响应体完整

这一步可以确认在未启用额外安全校验的情况下,不越狱完全可以抓到 HTTPS。


三、遇到证书校验(SSL Pinning)

接下来测试一个启用了证书校验的 App。

操作保持不变,只替换测试 App。

现象:

  • App 提示网络错误
  • Charles 中只出现握手失败或无请求记录

代理路径仍然有效,Safari 仍然可以抓到数据。

说明:

  • 阻断发生在 App 内部
  • 系统信任代理证书不代表 App 会信任

在这里继续重复安装证书不会改变结果。


四、是否必须越狱才能继续?

不越狱依然有两种路径可以尝试。

路径一:分析握手层

可以通过底层抓包确认:

  • 是否存在 TLS ClientHello
  • 是否建立 TCP 连接

如果 TLS 握手存在,说明流量确实发出,只是代理无法接管。


路径二:设备本机抓包

这里切换抓包方式。

使用 SniffMaster 进行设备本机 HTTPS 抓包

SniffMaster 支持通过 USB 在电脑上直接抓取 iOS 设备流量。

操作步骤

  1. 用 USB 将 iPhone 连接电脑
  2. 保持设备解锁并点击“信任此电脑”
  3. 启动 SniffMaster
  4. 在设备列表中选择对应 iPhone
  5. 按提示安装驱动与描述文件
  6. 进入 HTTPS 暴力抓包模式
  7. 点击开始
  8. 触发 App 请求

没有配置 Wi-Fi 代理,也没有安装代理证书。 暴力抓包


五、证书校验 App 的抓包结果

在设备抓包模式下测试同一个启用证书校验的 App。

结果:

  • 请求可以看到
  • HTTPS 内容显示正常
  • 未出现握手失败

区别来自抓包场景。

代理模式依赖替换证书,设备直接抓包不依赖中间人证书。


六、当请求体为空时的判断

如果抓到的 HTTPS 中:

  • URL 可见
  • Header 可见
  • Body 为空

这与越狱无关,而与签名有关。

若测试的是 App Store 下载的应用,需要:

  1. 获取 IPA
  2. 使用 iOS 开发证书重签
  3. 重新安装
  4. 再次抓包

完成后,请求体与响应体可完整显示。


七、双向认证(mTLS)的测试

在双向认证场景中:

  • 代理抓包会在握手阶段失败
  • 设备级抓包仍可观察到 TLS 会话

关键点是抓包工具是否依赖代理替换证书

参考链接:www.sniffmaster.net/tutorial/zh…

❌
❌