如何使用 firehol 和 tinyproxy 创建透明 https 代理?

如何使用 firehol 和 tinyproxy 创建透明 https 代理?

我在 Ubuntu 10.04.4 中设置了一个透明代理,其中 firehol 和 tinyproxy 可以很好地用于 http,但我无法让它用于 https。

直接连接到 tinyproxy 可以正常工作,因为以下命令可以正常完成:

env  http_proxy=localhost:8888 curl  http://www.google.com
env https_proxy=localhost:8888 curl https://www.google.com

Http 透明代理也可以正常工作:

curl  http://www.google.com

但是当直接使用 https 访问 Google 时,命令就会挂起:

curl  https://www.google.com

以下是 firehol 和 tinyproxy 的完整配置文件。请注意,除了透明代理之外,我对使用 firehol 没有任何兴趣。

firehol.conf:

transparent_proxy "80 443" 8888 proxy
interface any world
   client all accept
   server all accept

tinyproxy.conf(除上游代理外所有默认设置):

User    nobody
Group   nogroup
Port    8888
Timeout 600
DefaultErrorFile  "/usr/share/tinyproxy/default.html"
StatFile          "/usr/share/tinyproxy/stats.html"
Logfile           "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
PidFile           "/var/run/tinyproxy/tinyproxy.pid"
MaxClients     100
MinSpareServers  5
MaxSpareServers 20
StartServers    10
MaxRequestsPerChild 0
ViaProxyName "tinyproxy"
ConnectPort 443
ConnectPort 563
upstream corporate.fire.wall:8080

答案1

据我所知,tinyproxy 根本不支持传入的 HTTPS 连接。它将允许您使用连接方法,但为了使用该方法,浏览器/客户端必须知道它正在与代理服务器对话,并使用正确的连接方法。

ConnectPort指令只是定义允许连接哪些端口。

唯一支持透明代理 HTTPS 连接的 FOSS 产品是乌贼,并且对它的支持相对较新。它还引入了一些相当严重的安全问题,因为透明 HTTPS 代理必须执行中间人攻击并解密连接,以便知道要连接到什么。

相关内容