HTTPS-Antwort aus dem Squid-Cache bereitstellen, auch wenn der Upstream-Server nicht erreichbar ist

HTTPS-Antwort aus dem Squid-Cache bereitstellen, auch wenn der Upstream-Server nicht erreichbar ist

Ich habe Squid ssl_bumpso konfiguriert, dass es HTTPS-Verbindungen per Man-in-the-Middle manipulieren und die Antworten zwischenspeichern kann, und zwar wie folgt:

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

Ich möchte, dass Squid die Verbindung des Clients akzeptiert und versucht, die Antwort aus seinem Cache bereitzustellenVorversucht, eine Verbindung zum Upstream-Server herzustellen.

Allerdings versucht es zuerst, eine Verbindung zum Server herzustellen und gibt einen 503-Fehler zurück, wenn der Server nicht erreichbar ist (weil beispielsweise das Netzwerk offline ist):

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

Wenn das Netzwerk verfügbar und der Upstream-Host erreichbar ist, führt Squid die folgenden Operationen aus seinem In-Memory-Cache aus:

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

Antwort1

Die Verwendung client-firstscheint zu funktionieren:

acl step1 at_step SslBump1
ssl_bump client-first step1
ssl_bump bump all

Allerdings handelt es sich hierbei um eine seit langem veraltete Option, die nicht zum Zwischenschalten jeder Art von TLS-Verbindung funktioniert.

verwandte Informationen