Shadowrocket 解密 HTTPS 的原理是中间人攻击(MITM):Shadowrocket 生成或使用自定义 CA 证书,让 iOS 系统信任该证书,然后代理服务器就能解密、查看、修改 HTTPS 流量,再重新加密发送到目标服务器。
配置步骤
生成/配置 CA 证书
在 Shadowrocket 中:
- 进入 配置 → 点击当前使用的配置文件 → 编辑配置 → HTTPS 解密
- 点击 生成新的 CA 证书(或导入已有证书)
- 点击 安装证书,系统会跳转到 Safari 下载描述文件
系统信任证书(关键步骤)
下载后需要在 iOS 设置中完成两步信任:
第一步:安装描述文件
- 打开 设置 → 通用 → VPN 与设备管理(或"描述文件")
- 找到 Shadowrocket 的证书,点击安装,输入锁屏密码
第二步:启用完全信任
- 设置 → 通用 → 关于本机 → 证书信任设置
- 找到 Shadowrocket 的证书,打开"针对根证书启用完全信任"开关
开启解密功能
回到 Shadowrocket:
- 在 HTTPS 解密 设置中,开启 启用 HTTPS 解密
- 可以设置 主机名 过滤(指定解密特定域名,如
*.google.com) - 保存配置
主要用途
- 广告过滤:解密后可通过脚本或规则去除 HTTPS 广告
- 请求调试:查看 API 请求内容、修改请求/响应
- 解锁区域限制:修改 HTTPS 请求头或内容绕过检测
- 抓包分析:配合日志功能分析 App 网络行为
⚠️ 重要安全警告
风险 1:隐私泄露
- Shadowrocket 能看到所有解密流量的明文内容(密码、聊天记录、银行信息等)
- 确保证书仅自己生成,绝不使用他人提供的证书
风险 2:证书滥用
- 如果私钥泄露,攻击者可伪造该证书拦截你的流量
- 建议定期更换证书,不用时关闭 HTTPS 解密
风险 3:App 检测
- 部分银行、金融、安全类 App 会检测中间人攻击并拒绝运行
- 遇到此类问题,需将该域名加入 跳过解密 列表
故障排查
| 问题 | 解决方案 |
|---|---|
| 无法安装证书 | 确保 Safari 能正常下载;检查 iOS 是否已安装过同名证书,需先删除旧证书 |
| 安装后仍显示"不信任" | 必须在"关于本机"→"证书信任设置"中开启完全信任 |
| 某 App 无法联网 | 将该 App 的域名加入 排除列表(Exclusion)或关闭解密 |
| 证书过期 | 重新生成并安装新证书 |
替代方案
如果仅需抓包分析,可考虑:
- Stream:iOS 专用抓包工具,无需代理,操作更简单
- Thor:支持 HTTPS 解密,界面更友好
- PC 端 Charles/Fiddler:通过 Wi-Fi 代理让手机流量经过电脑抓包
建议:仅在必要时开启 HTTPS 解密,用完后立即在"证书信任设置"中关闭信任,减少攻击面。