如何设置 squid 反向代理以使用 https 和 http 流量?

如何设置 squid 反向代理以使用 https 和 http 流量?

我已经有一个为两个测试站点工作的 Squid 反向代理。

我的两个网站是www.test1.comwww.test2.com

我当前的工作配置文件如下所示

/etc/squid3/squid.conf

acl test1_acl dstdomain www.test1.com
acl test2_acl dstdomain www.test2.com

aclSSL_ports port 443

acl Safe_ports port 80
acl ​Safe_ports port 21
acl ​Safe_ports port 443
acl ​Safe_ports port 70
acl ​Safe_ports port 210
acl ​Safe_ports port 1025-65535
acl ​Safe_ports port 280
acl ​Safe_ports port 488
acl ​Safe_ports port 591
acl ​Safe_ports port 777

acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !Safe_ports
http_access allow localhost manager
http_access deny manager
http_access allow pi1_acl
http_access allow pi2_acl
http_access allow localhost
http_access deny all

http_port 80 accel defaultsite=127.0.0.1

cache_peer 192.168.1.x parent 80 0 proxy-only name=test1
cache_peer 192.168.1.y parent 80 0 proxy-only name=test2
cache_peer_access test2 allow test2_acl

coredump_dir /var/spool/squid3

refresh_pattern ^ftp:    1440    20%    10080
refresh_pattern ^gopher:    1440    0%    ​1440
refresh_pattern -i (/cgi-bin/|\?)    0    20%    2880
refresh_pattern .    0    20%    ​4320

正如我所说,此配置有效,但我想添加几个 https 站点。我尽力遵循示例这里,但它的设置与其推荐的配置格式(或至少是默认格式)略有不同。

有关我想要转发到的 https 站点的更多信息:

  • 它已经有一个 .key 和 .crt 文件,并且 https 在其上运行良好。

  • 我将 .key 和 .crt 文件复制到 squid 框中,并在配置文件中引用这些文件的位置。(不确定是否应该将 .crt 和 .key 文件留在服务器上,但我这样做了)

  • 我没有在服务器上做任何其他更改...所以如果我应该这样做的话,我没有在任何地方看到它。

这是我的新配置文件。

/etc/squid3/squid.conf

#new lines
https_port 443 accel defaultsite=127.0.0.1 cert=/path/to/myCert.crt key=/path/to/myKey.key

acl newServer_acl dstdomain www.newserver.com
http_access allow newServer_acl
cache_peer 192.168.1.z parent 443 0 proxy-only name=newserver ssl sslcafile=/path/to/myCert.crt
#end new lines

acl test1_acl dstdomain www.test1.com
acl test2_acl dstdomain www.test2.com

aclSSL_ports port 443

acl Safe_ports port 80
acl ​Safe_ports port 21
acl ​Safe_ports port 443
acl ​Safe_ports port 70
acl ​Safe_ports port 210
acl ​Safe_ports port 1025-65535
acl ​Safe_ports port 280
acl ​Safe_ports port 488
acl ​Safe_ports port 591
acl ​Safe_ports port 777

acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !Safe_ports
http_access allow localhost manager
http_access deny manager
http_access allow pi1_acl
http_access allow pi2_acl
http_access allow localhost
http_access deny all

http_port 80 accel defaultsite=127.0.0.1

cache_peer 192.168.1.x parent 80 0 proxy-only name=test1
cache_peer 192.168.1.y parent 80 0 proxy-only name=test2
cache_peer_access test2 allow test2_acl

coredump_dir /var/spool/squid3

refresh_pattern ^ftp:    1440    20%    10080
refresh_pattern ^gopher:    1440    0%    ​1440
refresh_pattern -i (/cgi-bin/|\?)    0    20%    2880
refresh_pattern .    0    20%    ​4320

这是我第一次使用 squid 或 https 站点设置反向代理,所以我确信这是一个小错误,但我查看了其他配置文件,似乎没有发现问题。

任何帮助都将受到赞赏。

答案1

根据我的研究,这似乎不是一个简单的配置文件问题。Squid 必须使用标志进行编译--enable-ssl,而这对于基于 Debian 的发行版来说似乎相当困难。在我看来,Squid 更适合基于 RPM 的发行版。请参阅这里了解更多信息。

我现在将其标记为答案,除非有人稍后发布更有意义的内容。

相关内容