Выдавать HTTPS-ответ из кэша Squid, даже если сервер вышестоящего уровня недоступен

Выдавать HTTPS-ответ из кэша Squid, даже если сервер вышестоящего уровня недоступен

Я настроил Squid так ssl_bump, чтобы он мог устанавливать HTTPS-соединения типа «man-in-the-middle» и кэшировать ответы, вот так:

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-подключений.

Связанный контент