Appearance
Shadowrocket (小火箭) MitM 证书解密与 HTTPS URL 重写排障指南
在 iOS 平台使用 Shadowrocket (小火箭) 的高级玩家,几乎都会接触到它的两大“黑科技”核心功能——MitM (中间人攻击 / Man-in-the-Middle HTTPS 解密) 与 Script / Rewrite (脚本执行与 URL 动态重写)。
借助这两大能力,你可以实现许多在普通代理客户端上无法想象的高阶操作:
- 自动净化各大主流 App 内部的开屏广告、信息流牛皮癣广告;
- 突破特定海外应用的地域限制与重定向跳转;
- 实时修改 HTTP 响应体(Response Body),修改客户端界面展示甚至自动化签到打卡。
然而,在享受这些强大功能的同时,MitM 也是小火箭所有功能中配置门槛最高、最容易引发灾难性网络瘫痪的雷区。许多新手往往遇到以下三大死锁困境:
- 按照网上教程在小火箭里点了“生成证书”,但一开启 HTTPS 解密,微信、支付宝、网银甚至苹果 App Store 瞬间全瘫痪,提示网络不可用或连接不安全;
- 系统提示“证书未受信任”,无法解密任何目标域名;
- 导入的广告拦截重写模块(Module)毫无效果,广告依然满天飞。
本文将深入 iOS 系统的安全沙箱与 X.509 密码学证书验证模型,为你带来一套不留隐患的 MitM 标准排障实战手册。
模块一:核心答案摘要与安全避坑铁律 (Answer-First)
1. 为什么装了证书依然提示“未受信任”?(iOS 致命两阶段认证)
许多用户以为在小火箭里点击“安装证书”并下载了描述文件就大功告成了,殊不知 iOS 操作系统设计了极其严格的“两阶段安全隔离”:
- 第一阶段(安装描述文件):进入 iPhone「设置」→「已下载描述文件」点击安装。此时证书仅仅是被导入了系统沙箱,处于完全休眠的未激活状态;
- 第二阶段(手动赋予完全信任 - 90% 用户遗漏之处!):必须进入 iPhone「设置」→「通用」→「关于本机」→ 滑动到最底部点击 「证书信任设置」 → 在“针对根证书启用完全信任”列表中,手动找到 Shadowrocket 证书并将右侧开关拨至绿色开启!
2. 为什么开启 MitM 后微信与银行 App 瞬间崩溃?
- 现代高安全级别 App(如微信、各大商业银行、支付宝、Apple 官方服务)在代码中普遍启用了 SSL Pinning (证书绑定/公钥固定) 技术;
- 这些 App 在发起 TLS 握手时,完全不信任操作系统内置的根证书库,而是只认 App 安装包内部写死的官方合法证书公钥;
- 当小火箭尝试在中间解密它们的流量时,会被 SSL Pinning 机制瞬间识别为“黑客中间人窃听”,App 会硬性断开连接以保护资产安全!
- 铁律:严禁在 MitM 的主机名列表(Hostname)中填入通配符
*!必须只针对特定的广告域名或目标网站进行精准解密,微信、金融类域名必须坚决排除!
模块二:MitM 中间人解密与 URL 重写的工作拓扑
看清数据包在小火箭内部的处理流水线,有助于精准定位规则失效点:
+-----------------------------------------------------------------------------------------+
| Shadowrocket MitM 数据解密与重写拓扑 |
+-----------------------------------------------------------------------------------------+
[iOS 客户端 App] [Shadowrocket 本地沙盒核心] [远端目标服务器]
│ │ │
├─ 1. 发起 HTTPS 请求: https://api.ads.com ─>│ │
│ (Client Hello 握手) │ │
│ ├─ 2. 检查该域名是否在 Hostname 列表中? │
│ │ │
│ ┌──────────────────────────────────────┴───────────────────────────────────┐ │
│ ▼ ▼ │
[命中 MitM 列表!] [未命中列表 (常规模式)]
│ │ │
├─ 3. 小火箭使用本地自签 CA 动态签发伪造证书 ─┐ │ │
│ (因系统已赋予完全信任,App 校验通过!) │ │ │
│<──────────────────────────────────────────┘ │ │
│ ├─ 4. 小火箭代为向真实服务器建立 TLS ───>│
│ │<─ 5. 获取真实密文并在本地内存完整解密 ──┤
│ │ │
│ ├─ 6. 执行 Rewrite / Script 规则清洗 │
│ │ (删除广告字段 / 重写 JSON 响应) │
│ │ │
│<─ 7. 将净化后的明文重新加密返回给 App ────┤ │
▼ ▼ ▼
[App 显示干净无广告界面!] [整个过程在手机内部瞬时完成]从拓扑可以看出,小火箭自身充当了一个“合法的中间人”,如果本地 CA 根证书没有被系统绝对信任,第一步 TLS 握手就会被 iOS 内核直接掐死。
模块三:标准化五步规程:从证书生成到完全信任实操
请严格按照以下标准化顺序操作,任何步骤颠倒都会导致配置失败:
第一步:在小火箭中生成专属私有 CA 证书
- 打开 Shadowrocket,点击底部菜单 「配置 (Config)」;
- 点击当前正在生效的规则文件(默认通常为
default.conf),在弹出菜单中点击 「编辑配置」; - 找到并点击 「HTTPS 解密 (HTTPS Decryption)」;
- 勾选顶部的 「HTTPS 解密」 开关;
- 点击下方弹出的 「生成新的 CA 证书」,在警告弹窗中点击确定(此时小火箭会在手机本地安全生成专属的私钥与根证书)。
第二步:安装证书描述文件到系统
- 点击小火箭界面中的 「安装证书到系统」;
- 手机自动呼出 Safari 浏览器,弹出提示框:“此网站正尝试下载一个配置描述文件,是否允许?”,点击 「允许」;
- 提示“已下载描述文件,请在设置中查看”。
第三步:在 iOS 设置中激活描述文件
- 退出小火箭,打开 iPhone 系统自带的 「设置」;
- 在设置顶部的个人账号下方,找到并点击 「已下载描述文件」(若没有,进入「通用」→「VPN 与设备管理」);
- 点击名为
Shadowrocket Root Certificate Authority...的描述文件,点击右上角 「安装」; - 输入你的 iPhone 锁屏开机密码,在弹出的警告页面中再次点击右上角 「安装」 完成导入。
第四步:开启根证书完全信任(核心决胜步)
- 依然在系统 「设置」 中,进入 「通用」 → 点击第一项 「关于本机」;
- 滑动到最底部,点击最后一项 「证书信任设置」;
- 在“针对根证书启用完全信任”区域下方,找到
Shadowrocket ...证书; - 将右侧的开关拨至开启状态(变绿);
- 在弹出的根证书安全警告对话框中,果断点击 「继续」!
第五步:验证 MitM 运行状态
返回小火箭的「HTTPS 解密」页面,此时证书状态应显示为绿色的 状态: 已信任,代表底层密码学基础设施已全量打通。
模块四:针对性保护:配置 Hostname 白名单与黑名单排除
为了绝对防止微信、网银 App 遭受中间人拦截引发断网,必须精细化维护 Hostname (主机名列表)。
1. 严禁配置的通配符陷阱
- ❌ 绝对不要填写:
*、*.*、*.com、*.cn; - 致命后果:会导致手机内所有 App 的加密握手全部被强行拆解,触发全系统大面积拒绝服务。
2. 标准的 Hostname 填写真实范例
进入小火箭「HTTPS 解密」→「主机名」,只填写你需要真正解密广告或重写的特定二级域名:
text
# 仅针对特定的去广告目标域名开启解密
api.ad.example.com,
*.snssdk.com,
upload.media.target.com,
# 坚决排除高危金融与社交通讯域名 (加 - 减号排除)
-*.apple.com,
-*.icloud.com,
-*.qq.com,
-*.wechat.com,
-*.alipay.com,
-*.cmbchina.com模块五:URL Rewrite 与 Script 模块实操语法速查
配置好 MitM 后,如何在小火箭中编写或加载去广告重写规则?
1. 标准 URL Rewrite 语法规则 (3 种常见类型)
进入小火箭「配置」→「URL 重写」:
reject(阻断丢弃):用于彻底切断广告请求,相当于让广告接口返回 404;text^https?:\/\/api\.example\.com\/v\d\/ad\/reject - rejectheader(修改 HTTP 请求头):伪装请求来源或 User-Agent;text^https?:\/\/api\.bilibili\.com\/header - header-replace User-Agent "Mozilla/5.0"302(临时重定向):将特定的错误链接强制跳转至正确的安全页面;text^https?:\/\/google\.cn 302 https://www.google.com
2. 现代懒人方案:一键安装 Module (模块)
现代小火箭支持模块化(Module)订阅。你无需手工编写繁琐的代码,只需在小火箭首页底部点击 「模块」 → 点击右上角 「+」 → 粘贴社区维护的成熟模块链接(如去微博开屏广告模块、知乎去广告模块),小火箭会自动将 MitM Hostname 与 Rewrite 规则一并无缝写入,极速省心。
模块六:真实生产环境 RCA 故障复盘案例
案例一:开启 MitM 后 App Store 无法下载应用、提示“无法连接”
- 故障现象:某 iPhone 用户按照教程开启小火箭 MitM 去视频广告后,发现系统自带的 App Store 彻底瘫痪,点击更新或下载 App 一直转圈,最终报错“无法连接到 App Store”。
- 排错过程:
- 工程师查看该用户的「主机名 (Hostname)」列表,发现其中赫然写着
*; - 根因在于苹果 iOS 系统的 App Store、iCloud 同步与 Apple ID 鉴权在底层强制启用了严格的客户端证书固定机制(SSL Pinning);
- 小火箭试图使用自签证书解密
*.apple.com流量,iOS 系统内核的安全检测模块立即判定遭到中间人伪造,主动阻断所有通信。
- 工程师查看该用户的「主机名 (Hostname)」列表,发现其中赫然写着
- 最终解决:在 Hostname 中删除通配符
*,添加-*.apple.com与-*.icloud.com排除规则,App Store 秒级恢复下载。
案例二:微信电脑端/平板端扫码登录提示“网络异常”
- 故障现象:用户在手机小火箭开启 HTTPS 解密后,使用手机微信扫描电脑端微信二维码时,手机界面反复提示“网络连接不可用,请稍后重试”,关闭小火箭后则恢复。
- 排错过程:
- 抓包审查小火箭的流量日志,发现微信扫码鉴权请求发送到了
long.weixin.qq.com; - 该域名被误包含在第三方去广告模块的 MitM 解密名单中;
- 腾讯微信内核检测到非官方证书的中间人握手,直接安全熔断。
- 抓包审查小火箭的流量日志,发现微信扫码鉴权请求发送到了
- 最终解决:在小火箭配置的
[MITM]区域底部追加hostname = -*.qq.com, -*.wechat.com,扫码登录秒级成功。
模块七:常见问题答疑 (FAQ)
Q1:我更换了新 iPhone,需要重新走一遍证书信任流程吗?
答:是的,必须重新操作一遍。小火箭生成的 CA 私钥和证书仅保存在当前这台 iPhone 的硬件安全隔离区中。即便你通过 iCloud 备份将 App 恢复到了新手机上,iOS 出于最高安全策略,新手机上的证书完全信任开关依然是默认关闭的,必须重新进入「证书信任设置」手动开启。
Q2:小火箭的 MitM 解密会不会把我的账号密码上传到他们的服务器?
答:绝对不会。小火箭的 MitM 采用的是纯本地端(Local-loopback)解密:
- 证书由你的手机 CPU 现场生成;
- 私钥直接加密存放在手机内部沙盒中,永远不会通过网络发出;
- 解密、改写、重新加密的全过程在手机内存中完成,开发者和任何第三方均无法拿到你的解密明文。
Q3:开启 HTTPS 解密会不会导致手机明显发热和耗电?
答:如果 Hostname 仅针对几十个特定的广告域名,由于现代苹果 A 系列 / M 系列芯片内置了强悍的 AES 硬件加解密协处理器,额外的电量损耗微乎其微(通常小于 1%);但如果你误开了全局通配符 * 导致手机里所有的流量都在反复拆包重新加密,CPU 负担将明显加重并导致发热。
模块八:容灾备用与全链路保障
在调试小火箭高级 MitM 与重写功能时,若发生网络全盘中断,请随时使用以下保障通道:
网络排障决策分支:服务器与节点故障应急响应
STATUS: HIGH_AVAILABILITY_FALLBACK 若您已完成前述步骤(确认本地网络畅通、系统代理开启且端口正确),但所有节点依然全部超时、测速全红或订阅无法更新,这通常意味着当前机场的国内中转入口被封锁、服务器宕机或发生服务异常。此时继续折腾客户端已无意义,建议启动跨机房独立专线应急备用方案:
主推 · 旗舰专线
光速云 (Guangsu)双线路 IEPL 专线
起步门槛:¥99/年 (约8元/月)
线路特点:企业级内网+独立专线, 晚高峰0丢包
专属优惠:AMM
性价比专线
微风网络 (Breeze)IEPL 专线 + VLESS
起步门槛:¥137/年 (100GB/月)
线路特点:全原生 IP 覆盖, 7×24小时真人/AI客服
专属优惠:flat888
- 📱 小火箭基础手册:Shadowrocket 小火箭完整使用指南与排错索引
- 🧭 全局分流模式解析:规则模式与全局模式原理深度解析
- 🚀 企业级稳定专线选型:若遇到节点反复超时断连,建议查阅 2026 高可用 IEPL 专线机场横向评测档案,使用免中间人证书折腾的纯净高质量专线。
模块九:版本维护记录与参考标准
| 维护属性 | 详细登记信息 |
|---|---|
| 文档版本 | v1.1.0 (全量落地版) |
| 最新审核校对时间 | 2026-10-25 |
| 参考苹果官方安全标准 | Apple Security: Trusting manually installed certificate profiles in iOS, NetworkExtension Framework |
| 测试验证客户端 | Shadowrocket v2.2.x (iOS 17.5 / iOS 18.0) |
| 发布与维护单位 | 网络诊断实验室 (NetZhenduan.cc) 移动端安全与证书审计组 |