带有 SSL 的 Squid 反向代理

带有 SSL 的 Squid 反向代理

我正在尝试使用 squid 作为单个网站前面的反向代理,解密代理上的 SSL,然后加密与 Web 服务器的连接(这是为了将 squid 用作零信任 CDR 产品的 ICAP 客户端)。

我发现这需要两行配置: https_port 1.2.3.4:443 accel用于侦听器和 cache_peer 1.2.4.8 parent 443用于 Web 服务器。

按照我在这里和其他地方找到的示例,我遇到了 Squid 的各种错误,特别是这个:

FATAL: No valid signing certificate configured for HTTPS_port

已知有效的 Squid 4.x 配置将会非常有帮助!

答案1

显然,我找到的例子都是针对早期版本的 squid 的。

对于这个问题,我的主要结论是配置行中的cert=和不再正确,我们需要使用和来代替。key=https_porttls-cert=tls-key=

因此(对于 Squid v4.15)我只需要 Web 服务器证书及其私钥,以及 squid.conf 中的以下几行:

https_port 1.2.3.4:443 accel defaultsite=mysite.com tls-cert=/etc/squid/myserver.pem
cache_peer 1.2.4.8 parent 443 0 no-query originserver login=PASS ssl

这适用于包含证书和未加密私钥的 .PEM。如果密钥位于单独的文件中,则应该有效:

https_port 1.2.3.4:443 accel defaultsite=mysite.com tls-cert=/etc/squid/myserver.pem tls-key=/etc/squid/myserver.key
cache_peer 1.2.4.8 parent 443 0 no-query originserver login=PASS ssl

如果该密钥已加密,则您需要手动启动 squid(例如在会话squid -N中运行screen)或添加sslpassword_program配置行以提供 PEM 密码。

http_port 3128注意:我发现squid 启动时仍然需要http_port 配置行(例如)。

所有配置文件指令都记录在这里:http://www.squid-cache.org/Doc/config/

相关内容