android - HTTPS 网址未加密

标签 android ssl https retrofit charles-proxy

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

事情是 Charles 向我展示了完整的请求,这意味着我可以看到整个 URL、标题和正文,所以我可以看到 www.example.com/rest/resource/param1/param2, 我用它发送的 JSON 以及身份验证 header 。

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

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

我想证书也已正确安装,因为每次发出 https 请求时它都会显示在浏览器中。我在这里遗漏了其他东西还是这是正常行为?

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

最佳答案

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

使用 https,URL 被加密

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

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

关于android - HTTPS 网址未加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606554/

相关文章:

android - ERROR : x86 HAX kernel module is not installed! 但已安装

asp.net-mvc - 在 ASP.NET MVC 中使用 SSL 操作过滤器重定向循环

node.js - NodeJS https是否对流量进行对称加密

java - 带有Java自签名证书的PHP SoapClient

java - 使用 https(SSL 的自签名证书)连接到 VPS 上的解析服务器

android - 在 Android 应用中添加 Firebase Analytics 和 Google Analytics

java - Android Kinvey java.lang.NoClassDefFoundError

java - 只有在单击关联的按钮两次后,才能通过 EditText 显示正确的输出

android - 翻新请求在 VPN 后面抛出 UnknownHostException

grails - 使用 HttpBuilder 通过 SSL 上传文件