Squid 作为 HTTPS 的备用代理

Squid 作为 HTTPS 的备用代理

在 Debian 机器上,Squid 和 Apache 正在运行。HTTPs 已通过 Certbot(Lets Encrypt)启用。

我有几个域(Vhost),并且所有域都使用一个 IP 地址。

Apache 正在监听端口 81 (HTTP) 和 444 (HTTPS)

我的 squid.conf 如下所示:

# Incoming Connections
http_port 80 accel
cache_peer localhost parent 81 0 no-query originserver
https_port 443 acceldefaultsite=yourwebserver vhost
cache_peer localhost parent 444 0 no-query originserver

# ACL
http_access allow all

# Allowed Ports
acl SSL_ports port 443          # https
acl Safe_ports port 80          # http
acl CONNECT method CONNECT

我的问题:当我使用上述配置启动服务时,Squid 要求证书来启用 HTTPS。

但对于每个域,我都使用不同的证书。如何强制 Squid 将 443 重定向到 444 localhost?

答案1

Squid 要求提供证书以启用 HTTPS

这就是 HTTPS 的整个概念。您将肯定需要证书才能提供受证书保护的内容。否则您将没有 http 代理,而是使用 NAT 或 TCP 代理(如带有 UPSTREAM 提供商的 nginx)。

但对于每个域我都使用不同的证书。

这就是 SSL (TLS) 的理念,也是您可以(读作:您必须)配置具有不同属性的不同侦听器的原因。或者您只使用 TCP 转发而不终止(读作:卸载)SSL。

squid3vhost中配置如下:

https_port serverone.com:443 cert=/etc/ssl/serverone.pem vhost
https_port servertwo.com:443 cert=/etc/ssl/servertwo.pem vhost

cache_peer lanserverone parent 80 0 name=lanserverone no-query originserver
cache_peer_domain lanserverone serverone.com

cache_peer lanservertwo parent 80 0 name=lanservertwono-query originserver
cache_peer_domain lanservertwo servertwo.com

我怎样才能强制 Squid 将 443 重定向到 444 localhost

答案:不可以。尝试使用上游的 nginx 或仅在路由器上执行 NAT。

相关内容