在JVM允许代理属性http.proxyHost和把http.proxyPort用于指定HTTP代理服务器和https.proxyHost和https.proxyPort用于指定HTTPS代理服务器。
我想知道是否有使用HTTPS代理服务器相比,HTTP代理服务器的所有优势?
通过HTTPS代理比从HTTP代理accesing不那么笨重访问HTTPS URL?
在JVM允许代理属性http.proxyHost和把http.proxyPort用于指定HTTP代理服务器和https.proxyHost和https.proxyPort用于指定HTTPS代理服务器。
我想知道是否有使用HTTPS代理服务器相比,HTTP代理服务器的所有优势?
通过HTTPS代理比从HTTP代理accesing不那么笨重访问HTTPS URL?
HTTP代理获得一个纯文本请求和[在大多数但不是所有情况下]发送不同的HTTP请求发送到远程服务器,然后向客户端返回的信息。
HTTPS代理是一个relayer,它接收特殊的HTTP请求(CONNECT动词),并建立一个不透明的隧道到目标服务器(这不一定甚至HTTPS服务器)。 然后客户端发送的SSL / TLS请求到服务器,他们继续与SSL握手,然后用HTTPS(如果需要)。
正如你看到的,这是两个完全不同的代理类型具有不同的行为和不同的设计目标。 因为它没有看到向服务器发送请求HTTPS代理不能缓存任何东西。 随着HTTPS代理你有一个通道,服务器和客户端接收并验证服务器的证书(以及可选反之亦然)。 HTTP代理,另一方面,看到并具有在其上从所述客户端接收的请求控制。
虽然HTTPS请求可以通过HTTP代理服务器发送,这是几乎从来没有,因为在这种情况下,代理将验证服务器的证书做,但客户端将能够接收和验证只代理的证书,并作为代理的证书中名称不匹配套接字连接到地址,在大多数情况下,警报将被赋予和SSL握手是不会成功的(我不打算到如何设法解决这个问题的详细信息)。
最后,HTTP代理就可以考虑这个请求,无效的HTTPS通道提供的,所以使用HTTP代理HTTPS请求的安全理念通常用于调试的目的(我们再次忽略这需要监测偏执公司安全策略的情况下,只有做了公司员工的所有HTTPS流量)。
另外:也看过我对类似题目的答案在这里 。
有没有优点或缺点。 而没有“HTTPS代理”服务器。
你可以告诉协议处理程序的代理服务器使用不同的协议。 这可以做http
, https
, ftp
和socks
。 没有更多而不是更少。
我不能告诉你,如果你要使用不同的代理HTTPS连接与否。 这取决于。 我只能解释一个HTTP的差异和HTTPS请求到代理。
由于HTTP代理 (或Web代理)理解HTTP
(因此得名),客户端可以只发送请求到代理服务器,而不是实际的destenation。 这并不适用于工作HTTPS
。 这是因为代理不能使TLS握手,这发生在第一位。 因此,客户端必须发送一个CONNECT
请求发送到代理。 代理建立一个TCP连接,只是发送包来回不接触他们。 因此,TLS握手发生在客户端和destenation之间。 HTTP代理服务器不会看到的一切,并没有任何验证destenation服务器证书。
可能有一些混淆,这整个HTTP,HTTPS,代理的东西。 它可以连接到以https HTTP代理。 在这种情况下,客户机和代理之间的通信被加密。
还有一些所谓的TLS terminating
或interception
代理服务器,比如Squid的SSL PEEK和接头或打嗝 ,它看到的一切 。 但是,这不应该工作开箱即用,因为代理使用其不被信任的CA签署自己的证书。