Lea*_*way 3 ssl networking android charles-proxy
我已经安装并一直在使用查尔斯代理(4.5.6)。
我正在使用 Android 9。
Charles 在 Chrome 页面上工作(特别是 Instagram):
但它不适用于 Instagram 应用程序:
当我使用该应用程序时,我总是收到该错误。
我应该“保存 Charles 根证书”然后将其安装在我的手机上吗?另外,为什么 Charles 可以在 Chrome 上工作,而不能在 Instagram 应用程序上工作?
Instagram 的应用程序使用了一种称为SSL 证书锁定的技术。基本上,这意味着他们将有关服务器预期 SSL 证书的信息捆绑到应用程序中,并拒绝任何不提供该证书的连接。由于 Charles 提供的证书不是 Instagram 的证书,因此连接被 Instagram 应用程序拒绝。在 Chrome 中,它必须依赖浏览器对证书信任的评估,这将遵循设备上安装的证书 - 我假设您已经将设备设置为信任 Charles Proxy SSL 证书,因此因为 Chrome 信任它(因为您告诉它),网站就可以工作了。曾经有一种方法可以在浏览器中进行密钥固定,.
您可以在 Facebook 帐户设置中禁用此证书固定:https : //www.facebook.com/whitehat/researcher-settings/
至于他们的实施细节,网上有很多关于如何在Instagram的应用程序中禁用固定的文章。我不能特别保证其中的任何一个,因为我没有尝试过它们,我不确定它们将如何与服务条款进行交互,但您可以查看它们以获取更多信息。
我一直在与 Charles 合作来监视和调试我的应用程序的网络请求,我想提几点对您有帮助的点:
从 Android N 开始,您需要向应用程序添加配置,以便让它信任 Charles SSL 代理生成的 SSL 证书。这意味着您只能对您控制的应用程序使用 SSL 代理。
Android 框架本身添加了此限制,以避免漏洞和黑客攻击,从而提高安全性。因此,如果您使用的是 Android 7 (Nougat) 或更高版本,则无法使用 Charles 来监控或调试第三方应用程序(在您的情况下为 Instagram)的网络请求。
如果您确实想这样做,可以尝试连接 Android 6 (Marshmallow) 或更低版本的 Android 手机,看看它是否适合您。
首先转到Charles -> 帮助 -> SSL 代理 -> 在移动设备或远程浏览器上安装 Charles 根证书
您将看到这样的信息窗口:
记下此窗口中提到的 IP 地址,然后转到手机的设置-> Wi-Fi -> 选择你的 Wi-Fi 网络 -> 编辑
您会发现名为Proxy的选项,默认情况下为None ,将其更新为Manual。您将看到两个输入字段,用于输入Hostname 和 Port,通过查看 Charles 中提到的 IP 来填写这些详细信息并保存。
完成后,您就可以出发了!
小智 1
这可能有两个原因
1) Instagram 应用程序正在使用禁用代理服务器的网络安全配置文件,有关更多信息,请阅读此网站https://developer.android.com/training/articles/security-config
2)为了检查您自己的应用程序的有效负载,您需要将代理服务器设置为https://community.tealumiq.com/t5/Tealium-for-Android/Setting-up-Charles-to-Proxy-your-Android-Device/ ta-p/5121
| 归档时间: |
|
| 查看次数: |
3995 次 |
| 最近记录: |