我正在尝试使用 Charles 代理设置 TLS 代理,以作为 Android 应用程序的中间人。我希望能够查看 HTTPS 流量的内容。这不是我构建的应用程序,而是我试图对我获得的 apk 进行逆向工程。我已经对 apk 执行了我通常的静态分析,但我还想动态分析 HTTPS 流量。我正在运行带有 API 23 (Marshmallow) 的模拟 Pixel 2 设备。
我已经阅读了我能找到的所有关于如何使用 Charles 代理作为 Android 的 TLS 代理的文档。但是,大部分文档都是针对我可以控制 AndroidManifest.xml 的应用程序设置 TLS 代理的,因此可以将网络安全配置设置为信任用户 CA——设置 Charles 的默认/记录程序TLS 代理涉及将 Charles CA 证书下载到 Android 设备并将其安装为用户 CA。
我假设如果我可以将 charles CA 证书强制放入系统证书文件夹(而不是用户证书),那么 TLS 代理将“正常工作”。但是,即使我将 Charles CA 证书复制到“/system/etc/security/cacerts”目录中,我仍然无法为应用程序 MiTM HTTPS 流量。此外,当我尝试 MiTM 网络浏览器流量时,浏览器仍然声称 TLS 连接存在问题(即使认为 Charles 证书位于 cacerts 文件夹中,现在应该受信任)。我确认 Charles 证书列在“系统”CA 证书列表中(尽管如果我尝试查看证书元数据信息,设置应用程序确实会崩溃——因为该证书没有,只有编码证书)。
为什么即使我将其强制放入系统 CA 证书文件夹中,Charles CA 证书也不可信?除了 Charles 之外,还有更好的工具可以使用吗?任何帮助将不胜感激,因为我快要结束我的智慧了。