我正在使用 Charles代理将来自我的Android应用的所有请求提取到网络服务。
查尔斯向我展示了完整的请求,这意味着我可以看到整个网址,标题和正文,所以我可以看到 www.example.com/rest/resource/param1/param2 , 我随之发送的JSON以及身份验证标题。
在阅读了this和this one这样的帖子后,我认为使用TLS的好处是只能从网址获取域名,在本例中为 www。 example.com
为了确保它不是客户的错,我通过改造和 HttpsURLConnection 请求了网络服务资源,我可以看到整个请求两次。
我想证书也已正确安装,因为每次发出 https 请求时,它都会显示在浏览器中。我在这里遗漏了别的东西还是这是正常行为?
到目前为止,我无法找到发生这种情况的原因,所以我们将不胜感激。
答案 0 :(得分:2)
要使用Charles代理进行调试,您必须在浏览器(客户端)上安装证书。
使用https,网址已加密。
但是因为您选择使用该代理,您的浏览器会建立与该代理的安全连接以及该网站的代理。所以,只有1)你,2)代理3)网站可以解密https流量。
在您的浏览器上安装CA证书,您允许扣留相应私钥(在您的情况下,您的代理)的人冒充(因此,使用MITM解密)网站强>