代理隧道失败:无效请求 -- HOST header 未发送 无法建立 SSL 连接

Proxy tunneling failed: Invalid request -- HOST header was not sent Unable to establish SSL connection

wget 无法通过代理服务器下载并显示以下消息:无效请求 -- HOST header 未发送无法建立 SSL 连接。

示例:

[root@foosrv0234ccpra ~]# wget https://packages.chef.io/stable/el/6/chefdk-0.18.26-1.el6.x86_64.rpm
--2016-09-27 16:57:44--  https://packages.chef.io/stable/el/6/chefdk-0.18.26-1.el6.x86_64.rpm
Resolving deehprx024ccpxa.ehn.sr.dev.sdc.mycomp.com (deehprx024ccpxa.ehn.sr.dev.sdc.mycomp.com)... 129.35.62.40
Connecting to deehprx024ccpxa.ehn.sr.dev.sdc.mycomp.com (deehprx024ccpxa.ehn.sr.dev.sdc.mycomp.com)|129.35.62.40|:8080... connected.
Proxy tunneling failed: Invalid request -- HOST header was not sentUnable to establish SSL connection.

[root@foosrv0234ccpra ~]# env|grep proxy
http_proxy=http://barsrvprx024ccpxa.ehn.sr.dev.sdc.mycomp.com:8080
https_proxy=http://barsrvprx024ccpxa.ehn.sr.dev.sdc.mycomp.com:8080
no_proxy=barsrvacp014ccpra,barsrvchf014ccpra.ssm.sdc.gts.mycomp.com,localhost,127.0.0.1,barsrvacp014ccpra.ssm.sdc.gts.mycomp.com

我花了一些时间才解决这个问题,所以我在 Whosebug 上分享了这个问题。请看下面的答案。

出现上述问题是因为HTTP 1.1要求客户端提供HOST头,而代理服务器不支持HTTP 1.1(有关此要求的更多详细信息,请参阅RFC 2616)。

一些备选方案:

  • 升级您的代理以支持 HTTP 1.1
  • wget 降级到仅支持 HTTP 1.0 的版本(wget v1.12 或更低版本)
  • 找到另一种方法来强制使用 1.0 而不是 1.1 进行所有 HTTP 调用(我还没有探索这种可能性,我不确定该怎么做...降级 wget 解决了我的问题)