不越狱能抓到 HTTPS 吗?在未越狱 iPhone 上抓取 HTTPS
2026年2月27日 15:49
这个问题在 iOS 调试中反复出现。
很多人听到“HTTPS”“证书校验”“SSL Pinning”,第一反应就是,是不是必须越狱?
这篇文章在不越狱设备上分别测试三种情况:
- 普通 HTTPS
- 启用证书校验的 App
- 启用双向认证的 App
环境:
- iPhone(未越狱)
- 一台 Windows + 一台 Mac
- 代理工具(Charles / Proxyman)
- 设备本机抓包工具 SniffMaster
一、代理抓包:不越狱的第一条路径
先测试最基础的方式:代理抓包。
操作步骤
- 启动 Charles(或 Proxyman)
- 确认代理端口正在监听
- iPhone 与电脑连接同一 Wi-Fi
- 在 iPhone 的 Wi-Fi 设置中填写代理地址与端口
- 在手机上安装并信任证书
- 用 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 设备流量。
操作步骤
- 用 USB 将 iPhone 连接电脑
- 保持设备解锁并点击“信任此电脑”
- 启动 SniffMaster
- 在设备列表中选择对应 iPhone
- 按提示安装驱动与描述文件
- 进入 HTTPS 暴力抓包模式
- 点击开始
- 触发 App 请求
没有配置 Wi-Fi 代理,也没有安装代理证书。
![]()
五、证书校验 App 的抓包结果
在设备抓包模式下测试同一个启用证书校验的 App。
结果:
- 请求可以看到
- HTTPS 内容显示正常
- 未出现握手失败
区别来自抓包场景。
代理模式依赖替换证书,设备直接抓包不依赖中间人证书。
六、当请求体为空时的判断
如果抓到的 HTTPS 中:
- URL 可见
- Header 可见
- Body 为空
这与越狱无关,而与签名有关。
若测试的是 App Store 下载的应用,需要:
- 获取 IPA
- 使用 iOS 开发证书重签
- 重新安装
- 再次抓包
完成后,请求体与响应体可完整显示。
七、双向认证(mTLS)的测试
在双向认证场景中:
- 代理抓包会在握手阶段失败
- 设备级抓包仍可观察到 TLS 会话
关键点是抓包工具是否依赖代理替换证书