问题描述
我正在尝试通过我的手机使用 Charles,但它不起作用。我尝试了 2 款不同的手机,一个 iOS 和一个安卓,但都没有工作..
这是我在 iOS 上遵循的步骤:(I found them here)
1 - 帮助 > SSL 代理 > 在移动设备上安装 Charles 根证书
2 - 在 iPhone 上,设置 > Wi-Fi > 我的网络 > 配置代理 > 手动我写下了我刚从 Charles 那里得到的 IP 地址和端口
3 - 我接受 Charles 上的消息,内容是“新设备正在尝试连接”
4 - 然后,在 iPhone 上,设置 > 通用 > 配置文件,我安装 Charles Proxy CA
5 - 然后,仍然在 iPhone 上,设置 > 通用 > 关于 > 证书,我启用根证书
6 - 它应该已经准备好了,所以我在谷歌上做了一个测试,所有的内容仍然是加密的..
如果有人知道如何解决它,我在听:)
解决方法
无法拦截 HTTPS 内容的原因有多种:
-
您的应用正在使用 SSL-Pinning,这可以防止 Charles Proxy 或 Proxyman 等 MiTM 应用拦截 HTTPS 流量。 => 如果是,则无法实现,除非您拥有固定证书
-
您似乎试图从 google.com 查看 HTTPS 内容,但它不起作用 => 似乎缺少其中一个步骤。请再次确认。
-
如果您在 Android 设备上进行测试,请确保将一些配置添加到
阅读更多network_security_config.xml
文件中。在 https://docs.proxyman.io/debug-devices/android-device#android-setup-guide
解决方案:
-
按照troubleshooting page找出问题所在:
-
您可以尝试 Proxyman - 它有一个内置的综合指南,可帮助您拦截来自 iOS 或 Android Device 的 HTTPS 流量
-
如果太复杂,可以试试automatic script for Android Emulators(自动设置HTTP代理,安装并信任证书)
免责声明:我写了 Proxyman,希望对您有所帮助。