我正在使用 Charles 代理 将来 self 的 Android 应用的所有请求提取到网络服务。
事情是 Charles 向我展示了完整的请求,这意味着我可以看到整个 URL、标题和正文,所以我可以看到 www.example.com/rest/resource/param1/param2, 我用它发送的 JSON 以及身份验证 header 。
在阅读了类似 this 的几篇文章后和 this one我认为使用 TLS 的好处在于只能从 URL 中获取域名,在本例中为 www.example.com
为了确保这不是客户端的错,我使用Retrofit 和HttpsURLConnection 请求了网络服务资源,我两次都可以看到整个请求。
我想证书也已正确安装,因为每次发出 https 请求时它都会显示在浏览器中。我在这里遗漏了其他东西还是这是正常行为?
到目前为止,我找不到发生这种情况的原因,因此我们将不胜感激。
最佳答案
要使用 Charles 代理进行调试,您必须在浏览器(客户端)上安装证书。
使用 https,URL 被加密。
但由于您选择使用该代理,您的浏览器会与该代理建立安全连接,并由该代理与网站建立连接。因此,只有 1) 您,2) 代理 3) 网站可以解密 https 流量。
通过在您的浏览器上安装 CA 证书,您允许持有相应私钥的人(在您的情况下是您的代理)冒充(因此,使用 MITM 解密)任何网站。
关于android - HTTPS 网址未加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606554/