Squid 作為 HTTPS 的保留代理

Squid 作為 HTTPS 的保留代理

在 Debian 機器上,Squid 和 Apache 正在運作。 HTTPs 透過 Certbot (Lets Encrypt) 啟用。

我有多個網域(虛擬主機),我對所有網域使用一個 IP 位址。

Apache 正在偵聽連接埠 81 (HTTP) 和 444 (HTTPS)

我的魷魚.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。

squid3虛擬主機 vonfiguration 中是這樣完成的:

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。

相關內容