使用HTTPS和代理时,我可以避免使用cURL的CONNECT请求吗?

时间:2015-12-14 13:58:17

标签: curl https proxy

HTTP请求

使用代理发出HTTP cURL请求时,请执行以下操作:

curl -x http://myproxy:8888 http://github.com

cURL向代理myproxy发送HTTP请求:8888,它向http://github.com

创建新的HTTP请求
The request content is :
GET /
Host: myproxy:8888
Location: http://github.com

HTTPS连接

使用代理发出HTTPS cURL请求时,请执行以下操作:

curl -x http://myproxy:8888 https://github.com

cURL向代理myproxy发送CONNECT请求:8888,它在您和github之间创建TCP隧道。所有SSL协商都在你和github之间。

HTTPS请求

我想使用没有CONNECT的代理发出HTTPS cURL请求。 我想为代理创建一个HTTPS URL的HTTP请求。

请求内容将是:

GET /
Host: myproxy:8888
Location: **https**://github.com

有可能吗?怎么做?

1 个答案:

答案 0 :(得分:1)

不,这是不可能的,因为CONNECT是您通过HTTP代理使用HTTPS进行的操作。移交该控件会放弃安全性和隐私性,首先要提供HTTPS的两件事。

我前几天answered this very question在curl邮件列表上稍长一点。

列表上的后续问题是,我们是否可以设想提供一种选项,允许在未来版本中通过代理进行HTTPS这种方式,是的,如果有人为新的代码编写代码,我们可以这样做选项。