【问题标题】:Can I avoid a CONNECT request with cURL when using HTTPS and a proxy?使用 HTTPS 和代理时,我可以避免使用 cURL 的 CONNECT 请求吗?
【发布时间】:2015-12-14 13:58:16
【问题描述】:

HTTP 请求

当您使用代理发出 HTTP cURL 请求时,您会这样做:

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

cURL 向代理 myproxy:8888 发送一个 HTTP 请求,它会创建一个新的 HTTP 请求到 http://github.com

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:8888 发送一个 CONNECT 请求,它会在您和 github 之间创建一条 TCP 隧道。所有 SSL 协商都在你和 github 之间。

HTTPS 请求

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

请求内容为:

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

有可能吗?如何做到这一点?

【问题讨论】:

    标签: curl https proxy


    【解决方案1】:

    不,这是不可能的,因为 CONNECT 是您用来通过 HTTP 代理执行 HTTPS 的工具。移交该控制权就是放弃安全性和隐私权,这是 HTTPS 首要提供的两件事。

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-13
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多