HTTPS url 未加密

HTTPS url not encrypted

我正在使用 Charles 代理 将来自我的 Android 应用程序的所有请求提取到网络服务。

事情是查尔斯向我展示了完整的请求,这意味着我可以看到整个 URL、headers 和 body,所以我可以看到 www.example.com/rest/resource/param1/param2, 我发送的 JSON 以及身份验证 header.

阅读了 this and this one 等几篇文章后,我认为使用 TLS 的好处在于只能从 URL 获取域名,在本例中为 www.example.com

为了确保这不是客户端的错,我使用 RetrofitHttpsURLConnection 请求了网络服务资源,并且我两次都可以看到整个请求。

我想证书也已正确安装,因为每次发出 https 请求时它都会显示在浏览器中。我是不是漏掉了什么东西或者这是正常现象?

到目前为止,我找不到发生这种情况的原因,因此我们将不胜感激。

要使用 Charles 代理进行调试,您必须在浏览器(客户端)上安装证书。

使用 https URL 已加密

但由于您选择使用该代理,您的浏览器会与该代理建立安全连接,并通过该代理与网站建立连接。所以,只有 1) 你,2) 代理 3) 网站可以解密 https 流量。

通过在您的浏览器上安装 CA 证书您允许扣留相应私钥的人(在您的情况下是您的代理)冒充(因此, 用 MITM 解密) 任何网站.