【问题标题】:How to proxy HTTPS via HTTP without CA or MITM?如何在没有 CA 或 MITM 的情况下通过 HTTP 代理 HTTPS?
【发布时间】:2018-07-24 21:04:22
【问题描述】:

支持 SSL 和 DNS 的 HTTP 代理。

我一定缺少一些关于代理的关键概念,因为我无法理解这一点。我希望在不干扰 SSL 的情况下运行简单的 http 或 https 代理。简单地说,一个完全透明的代理,可以将所有流量传递到通过 HTTP 或 HTTPS 代理连接的浏览器,而无需修改或拦截任何数据包。无法在线找到任何代码,或者我没有使用正确的关键字。

前。在浏览器上,在 HTTP 代理字段中添加 server.someVPN.com:80,一旦您尝试访问网站,它就会提示进行身份验证。然后它可以完美地与任何域、任何安全性、任何 ssl 配合使用,无需进一步的步骤。大多数VPN提供商都有这个。

这怎么可能?它甚至可以自行解析 DNS。我认为在透明代理上,dns 依赖于客户端。最好寻找 nodeJS 解决方案,但任何语言都可以。

请不要提出任何解决方案,例如 SOCKS5 或 sock 转发或 DNS 覆盖或基于 CA 的 MITM。根据支持“连接”的 HTTP 1.1,这应该很容易。

不寻求代理特定域,而是寻求全包解决方案就像大多数 VPN 提供商 提供商一样。

----找到答案太快了,请随意删除此帖子/问题管理员。

【问题讨论】:

    标签: proxy


    【解决方案1】:

    它的工作方式是浏览器知道它正在与代理服务器通信,因此例如,如果浏览器想要连接到htttp://www.example.com,它会向代理服务器发送CONNECT www.example.com:443 HTTP/1.1,代理服务器会解析@987654327 @ 通过 DNS,然后打开到 wwww.example.com port 443 的 TCP 连接,并将 TCP 流透明地代理给客户端。

    我不知道 nodejs 的任何解决方案。常见的代理服务器包括SquidPrivoxyApache Traffic Server

    另请参阅:https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT

    【讨论】:

    • 你能分享你触发错误的代码吗?你确定你通过未修改的 TCP 流吗?
    • 这就是我不确定的,我认为是握手失败了。我正在检查这个新模块,很快就会报告
    【解决方案2】:

    在我询问后立即找到了解决方案... 这个模块完美运行https://github.com/mpangrazzi/harrier

    完全符合我的要求。

    【讨论】:

      猜你喜欢
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多