【问题标题】:How to set up a https foward proxy for curl如何为 curl 设置 https 转发代理
【发布时间】:2019-04-28 20:31:01
【问题描述】:

我遇到了一个问题,在谷歌上找不到解决方案

我尝试使用 curl 访问代理后面的 https 网站,但失败了。

没有代理或没有ssl的访问是成功的。然后我部署了一个tcp代理(来自https://github.com/kklis/proxy),并设置环境export https_proxy=127.0.0.1:443

访问https://www.baidu.com,我刚刚收到connection aborted 错误

这是我运行代理的方式:

./proxy -l 8111 -h www.baidu.com -p 443

并设置代理环境:

export https_proxy=127.0.0.1:8111

运行卷曲:

curl -v https://www.baidu.com

得到结果:

重建 URL 至:https://www.baidu.com/

正在尝试 127.0.0.1...

连接到 127.0.0.1 (127.0.0.1) 端口 8111 (#0)

建立到www.baidu.com:443的HTTP代理隧道

CONNECT www.baidu.com:443 HTTP/1.1

主持人:www.baidu.com:443

用户代理:curl/7.47.0

代理连接:保持活动

代理连接中止

与主机 127.0.0.1 的连接 #0 保持不变

curl:(56)代理连接中止

我尝试添加 --insecure 并不起作用,结果相同。

我认为这是某人遇到的相同问题,但仍然没有答案: https://github.com/h2non/balboa/issues/1

如果有人可以提供帮助,谢谢!

【问题讨论】:

    标签: curl https proxy


    【解决方案1】:

    我想我知道原因

    我抓包,使用代理访问一个https网站,curl会启动一个HTTP CONNECT方法建立隧道。隧道应该在 curl 客户端和代理之间,但 TCP 代理会将所有消息传递到 Web 服务器,因此 Web 服务器会重置连接。

    转发代理不应该只是在客户端和 Web 服务器之间传递消息。它应该理解 HTTP CONNECT 方法

    我使用标准的转发代理 - squid,然后成功。

    希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 2019-04-02
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2016-11-18
      • 2013-06-04
      相关资源
      最近更新 更多