我已经安装并一直在使用 charles proxy(4.5.6)。
我使用的是安卓 9。
Charles 在 Chrome 页面(特别是 Instagram)上工作:
但它不适用于 Instagram 应用程序:
当我使用该应用程序时,我总是会收到该错误。
我应该“保存查尔斯根证书”然后将其安装在我的手机上吗?另外,为什么 Charles 可以在 Chrome 上工作,但不能在 Instagram 应用上工作?
最佳答案
Instagram 的应用程序使用一种称为 SSL Certificate Pinning 的技术。 .基本上,这意味着他们将有关服务器的预期 SSL 证书的信息 bundle 到应用程序中,并拒绝任何不提供该证书的连接。由于 Charles 提供的证书不是 Instagram 的证书,因此 Instagram 应用程序拒绝连接。在 Chrome 中,它必须依赖浏览器对证书信任的评估,这将取决于设备上安装的证书 - 我假设您已经将设备设置为信任 Charles Proxy SSL 证书,所以因为 Chrome 信任它(因为您告诉它),该网站有效。曾经有a way to do key pinning in the browser ,但由于 some issues that were discovered 而不再起作用.
您可以在您的 Facebook 帐户设置中禁用此证书固定:https://www.facebook.com/whitehat/researcher-settings/
至于它们的实现细节,有numerous articles online关于如何在 Instagram 的应用程序中禁用固定。我不能特别担保其中任何一个,因为我没有尝试过它们,而且我不确定它们将如何与服务条款交互,但您可以查看这些以获取更多信息。
关于android - 查尔斯在浏览器上工作,但不适用于应用程序 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60688374/