我已經配置了 Squid,ssl_bump
以便它可以進行中間人 HTTPS 連接並緩存回复,如下所示:
http_port 3128 ssl-bump \
cert=/etc/squid/certs/squid-ca-cert-and-key.pem \
generate-host-certificates=on dynamic_cert_mem_cache_size=16MB
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
我希望 Squid 接受客戶端的連線並嘗試從其快取中提供回應前嘗試連接到上游伺服器。
但是,它首先嘗試連接到伺服器,如果無法存取伺服器(例如因為網路離線),則傳回 503 錯誤:
1635102093.658 13 172.17.0.1 NONE/200 0 CONNECT deb.nodesource.com:443 - HIER_NONE/- -
1635102093.673 0 172.17.0.1 NONE/503 4110 GET https://deb.nodesource.com/setup_12.x - HIER_NONE/- text/html
當網路可用且上游主機可存取時,Squid 將愉快地從其記憶體快取中提供服務:
1635102172.772 101 172.17.0.1 NONE/200 0 CONNECT deb.nodesource.com:443 - HIER_DIRECT/18.2.197.72 -
1635102172.792 1 172.17.0.1 TCP_MEM_HIT/200 14319 GET https://deb.nodesource.com/setup_12.x - HIER_NONE/- text/plain
答案1
使用client-first
似乎有效:
acl step1 at_step SslBump1
ssl_bump client-first step1
ssl_bump bump all
然而,這是一個長期不建議使用的選項,並且無法插入每種類型的 TLS 連線。