Vb.net 通过代理服务器访问HTTPS站点

Vb.net 通过代理服务器访问HTTPS站点,vb.net,proxy,https,Vb.net,Proxy,Https,我正在添加使用代理服务器访问Internet的代码。 当从普通(HTTP)位置请求文件时,该代码可以正常工作,但在访问安全位置(HTTPS)时不工作 这是工作正常的代码: URL = "http://UnSecureSite.net/file.xml" Dim wr As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest) Dim proxy As System.Net.IWebProxy proxy = WebReque

我正在添加使用代理服务器访问Internet的代码。 当从普通(HTTP)位置请求文件时,该代码可以正常工作,但在访问安全位置(HTTPS)时不工作

这是工作正常的代码:

URL = "http://UnSecureSite.net/file.xml"
Dim wr As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)
Dim proxy As System.Net.IWebProxy
proxy = WebRequest.GetSystemWebProxy
wr.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim ws As HttpWebResponse = CType(wr.GetResponse(), HttpWebResponse)

// (more work here)
一旦我将URL更改为HTTPS,我就会收到一个407返回给我

有人有什么想法吗

URL = "https://SecureSite.net/file.xml"
Dim wr As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)
Dim proxy As System.Net.IWebProxy
proxy = WebRequest.GetSystemWebProxy
wr.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim myCache As New CredentialCache()
myCache.Add(New Uri("https://SecureSite.net"), "Basic", New NetworkCredential(UserName, Password))
wr.Credentials = myCache
Dim ws As HttpWebResponse = CType(wr.GetResponse(), HttpWebResponse)

// (more work here)

通过web代理的HTTPS请求不同于标准HTTP请求。常规HTTP请求将使用GET方法。但是,HTTPS请求需要使用连接方法。然后,代理将只建立到服务器的隧道。后续消息将通过代理隧道在客户端和服务器之间直接发送。代理无法解释其间流动的数据

在正常情况下:

Client -+- [CONNECT] ---> Proxy --- [DIRECT TCP] -+-> Server
        |                   |                     |
        +-------------[ENCRYPTED TCP]-------------+

我对VB代码不太熟悉,不知道这是不是真的。然而,我怀疑事实并非如此。最简单的检查方法是截获发送到代理的消息。请确保它以“CONNECT…”开头。

通过web代理的HTTPS请求与标准HTTP请求不同。常规HTTP请求将使用GET方法。但是,HTTPS请求需要使用连接方法。然后,代理将只建立到服务器的隧道。后续消息将通过代理隧道在客户端和服务器之间直接发送。代理无法解释其间流动的数据

在正常情况下:

Client -+- [CONNECT] ---> Proxy --- [DIRECT TCP] -+-> Server
        |                   |                     |
        +-------------[ENCRYPTED TCP]-------------+

我对VB代码不太熟悉,不知道这是不是真的。然而,我怀疑事实并非如此。最简单的检查方法是截获发送到代理的消息。请确保它以“连接…”开头。

+1精彩的答案。我经常想知道HTTPS是如何通过网络代理工作的(工作中!)+1个绝妙的答案。我经常想知道HTTPS是如何通过web代理工作的(在工作中!)