重要提示:HTTPS解密(SSL/TLS解密)属于中间人攻击(MITM)技术,仅可用于分析自己设备的网络流量、开发调试或学习目的,请勿用于窃取他人数据、破解商业软件或任何违法用途,部分应用(如银行类)检测到代理可能会拒绝服务。
准备工作
- 已安装Shadowrocket(需美区/外区Apple ID购买)
- iOS系统版本建议iOS 13+(证书管理位置有变化)
- 明确目标:确定需要解密的域名(不建议全局解密,耗电且风险高)
生成并安装CA证书
步骤1:生成证书
- 打开Shadowrocket → 点击底部"配置"(Config)
- 点击"证书"(Certificate)→ "生成新的CA证书"
- 点击"安装证书"(Install Certificate)
步骤2:系统安装描述文件
- 系统会自动跳转到设置 → 顶部出现"已下载描述文件"
- 进入设置 → 通用 → VPN与设备管理(或"描述文件")
- 点击Shadowrocket的证书 → 安装 → 输入锁屏密码
步骤3:信任证书(关键步骤)
- 进入设置 → 通用 → 关于本机 → 证书信任设置
- 找到Shadowrocket的证书,开启"完全信任"(iOS 13+必须步骤)
配置解密规则
方法A:针对特定域名解密(推荐)
- 在Shadowrocket主界面 → 点击"配置" → 编辑当前配置
- 找到"解密"(Decryption)或"HTTPS解密"选项
- 开启开关,在主机名(Hostname)中添加目标域名,
*.example.com api.target.com - 保存配置
方法B:使用模块(Module)解密
- 配置页面 → "模块" → 添加解密模块
- 或使用脚本自动配置:
[MITM] hostname = *.example.com, api.target.com enable = true
验证是否成功
- 开启Shadowrocket代理
- 访问目标HTTPS网站或使用目标App
- 在Shadowrocket的"最近请求"(Recent Requests)中查看:
- 如果能看到URL明文内容(而非乱码),说明解密成功
- 如果显示"CONNECT"隧道或加密内容,说明未解密
常见问题解决
| 问题 | 解决方案 |
|---|---|
| 证书安装后无法上网 | 检查是否开启"完全信任";尝试重启Shadowrocket |
| 部分App无法联网 | 该App可能使用SSL Pinning,需添加到"跳过代理"列表 |
| iOS提示证书不受信任 | iOS 13+必须在"关于本机"→"证书信任设置"中手动开启 |
| 仍为乱码 | 目标可能使用双向认证或证书固定技术,无法通过常规MITM解密 |
| 电池消耗快 | 解密会增加CPU负载,建议仅对必要域名开启,用完及时关闭 |
安全建议
- 及时清理:调试完成后,在"证书信任设置"中关闭信任,并在Shadowrocket中删除证书
- 精准配置:避免使用通配符解密所有流量,只针对需要分析的域名
- 隐私保护:生成的CA证书私钥存储在设备本地,不要导出分享给他人
- 应用兼容性:银行、支付、政务类App通常有严格的证书校验,强行解密可能导致账号风险或法律问题
高级技巧(可选)
- 配合抓包工具:将Shadowrocket与Thor、HTTP Catcher等工具配合使用
- 脚本处理:使用JavaScript脚本对解密后的请求进行修改(需开启脚本功能)
- 分流规则:在解密的同时配置分流,避免国内常用App走代理
注意:iOS 15+系统对证书管理更加严格,部分企业级应用可能检测到自定义CA证书后拒绝运行,这是正常安全机制。