问题描述
尝试使用Fiddler和ProxyDroid在Android设备上捕获和解密HTTPS流量,但仅能看到“Tunnel to : xxx.xxx.xx.xxx:443”的信息,无法解密HTTPS流量。尽管已经安装了FiddlerRoot.cer证书,但仍无法成功解密HTTPS流量。
解决方案
请注意以下操作可能因Android系统版本不同而有所差异,请确保备份重要数据。
方案1
适用于Android 6.0及以下版本
- 确保Fiddler配置正确
- 打开Fiddler,点击菜单栏的“工具”->“选项”->“HTTPS”,确保勾选“捕获HTTPS流量”、“解密HTTPS流量”和“捕获未加密的HTTP流量”。
点击“导出根证书到桌面”,将证书文件复制到Android设备或SD卡上。
在Android设备上安装Fiddler根证书
进入设备设置 -> 安全 -> 资质存储 -> 安装从SD卡 -> 选择FiddlerRoot.cer证书进行安装。
配置ProxyDroid
- 进入设备设置 -> 连接 -> Wi-Fi -> 当前Wi-Fi网络 -> 更多设置 -> 代理 -> 主机名设置为Fiddler计算机的IP地址,端口设置为8888。
按照上述步骤操作后,HTTPS流量应能被成功解密。
方案2
适用于Android 7.0及以上版本
- 下载并安装CertMaker for iOS and Android
访问https://www.telerik.com/fiddler/add-ons,找到并下载CertMaker for iOS and Android插件,以管理员身份运行安装程序。
配置Fiddler
- 重启Fiddler。
进入Fiddler -> 工具 -> 选项 -> HTTPS,确保“证书由BCCertMaker.BCCertMaker生成”选项被选中,并且“捕获HTTPS”和“解密HTTPS”功能已启用。
重置并导出根证书
- 点击“重置所有证书”,等待大约一分钟完成。
点击“导出根证书到桌面”,将生成的FiddlerRoot.cer证书复制到Android设备或SD卡上。
在Android设备上安装证书
- 进入设备设置 -> 安全 -> 资质存储 -> 安装从设备存储 -> 选择FiddlerRoot.cer证书进行安装。
- 配置ProxyDroid,设置主机名为Fiddler计算机的IP地址,端口为8888。
通过以上步骤,您应该能够成功解密Android应用的HTTPS流量。
请注意,对于使用自定义受信任服务器证书的应用程序,可能需要对APK进行逆向工程,移除自定义信任机制,然后重新编译应用程序。