Java 通过https请求加密?

Java 通过https请求加密?,java,security,ssl,https,Java,Security,Ssl,Https,在HTTPS(SSL)浏览器中,发送只能由服务器解密的加密数据 为了确认这一点,我在我的Firefox浏览器上设置了burp代理,以便它拦截通过浏览器发送到HTTPS服务器的请求。 当我在打嗝时收到它时,我看到了用户输入的数据,虽然我希望浏览器一定加密了,但并没有 那么浏览器在什么时候通过HTTPS加密数据呢?大多数这样做的软件(如反病毒扫描仪)都会用自己的HTTPS证书替换HTTPS证书,这样HTTPS流量就可以由软件在中间进行管理 虽然我对打嗝并不熟悉,但它看起来也一样: 所以不是 浏览器-

在HTTPS(SSL)浏览器中,发送只能由服务器解密的加密数据

为了确认这一点,我在我的Firefox浏览器上设置了burp代理,以便它拦截通过浏览器发送到HTTPS服务器的请求。 当我在打嗝时收到它时,我看到了用户输入的数据,虽然我希望浏览器一定加密了,但并没有


那么浏览器在什么时候通过HTTPS加密数据呢?

大多数这样做的软件(如反病毒扫描仪)都会用自己的HTTPS证书替换HTTPS证书,这样HTTPS流量就可以由软件在中间进行管理

虽然我对打嗝并不熟悉,但它看起来也一样:

所以不是

浏览器--(通过https)-->服务器

只有服务器才能读取,因为只有服务器具有解密http的私钥,因此,它变为:

浏览器--(通过https)-->打嗝--(通过https)-->服务器

如果您在浏览器中查看https证书,您可能会注意到它是由Burp颁发的,而不是站点在不使用Burp时显示的真实证书


这是唯一真正做到这一点的方法,不需要在加密发生之前改变浏览器来拦截它,但可能会产生自己的问题:软件真的应该拦截你和你的银行之间的流量吗?如果第一个连接可能被破坏(例如,请参阅)。出于这个原因,许多人(包括我自己)不喜欢MITM https服务。

大多数这样做的软件(如反病毒扫描程序)都会用自己的https证书替换https证书,这样https流量就可以通过软件进行中间人操作

虽然我对打嗝并不熟悉,但它看起来也一样:

所以不是

浏览器--(通过https)-->服务器

只有服务器才能读取,因为只有服务器具有解密http的私钥,因此,它变为:

浏览器--(通过https)-->打嗝--(通过https)-->服务器

如果您在浏览器中查看https证书,您可能会注意到它是由Burp颁发的,而不是站点在不使用Burp时显示的真实证书


这是唯一真正做到这一点的方法,不需要在加密发生之前改变浏览器来拦截它,但可能会产生自己的问题:软件真的应该拦截你和你的银行之间的流量吗?如果第一个连接可能被破坏(例如,请参阅)。出于这个原因,许多人(包括我自己)不喜欢MITM https服务。

谢谢BazzaDP。您的意思是说,当浏览器通过burp向https服务器发送请求时,burp临时充当服务器到浏览器的角色。burp还充当实际https服务器的客户端。Npe burps从实际的https服务器接收证书,但它自己保存证书,并将自己的证书发送到浏览器,并告诉浏览器不要加密任何数据。对吧?差不多-除了最后一点。浏览器流量仍然是加密的,但它是用为该站点创建的burps假证书加密的,而不是用该站点通常发送的真实证书加密的。这允许burp读取流量(因为它知道假证书的密钥),但仍然允许站点看起来是加密的(绿色挂锁),并且所有https链接仍然有效。Burp然后用真正的证书重新加密,然后通过互联网发送出去。正如我所说,我自己并没有打嗝,但这是它通常的工作方式。在启用打嗝的情况下检查浏览器中的证书以确保。很抱歉,我的原始答案中包含了打嗝文档的链接,但我忘记了。现在添加。谢谢你。您的意思是说,当浏览器通过burp向https服务器发送请求时,burp临时充当服务器到浏览器的角色。burp还充当实际https服务器的客户端。Npe burps从实际的https服务器接收证书,但它自己保存证书,并将自己的证书发送到浏览器,并告诉浏览器不要加密任何数据。对吧?差不多-除了最后一点。浏览器流量仍然是加密的,但它是用为该站点创建的burps假证书加密的,而不是用该站点通常发送的真实证书加密的。这允许burp读取流量(因为它知道假证书的密钥),但仍然允许站点看起来是加密的(绿色挂锁),并且所有https链接仍然有效。Burp然后用真正的证书重新加密,然后通过互联网发送出去。正如我所说,我自己并没有打嗝,但这是它通常的工作方式。在启用打嗝的情况下检查浏览器中的证书以确保。很抱歉,我的原始答案中包含了打嗝文档的链接,但我忘记了。现在添加它。