Proporcionar respuesta HTTPS desde la caché de Squid incluso si el servidor ascendente es inaccesible

Proporcionar respuesta HTTPS desde la caché de Squid incluso si el servidor ascendente es inaccesible

He configurado Squid ssl_bumppara que pueda realizar conexiones HTTPS intermedias y almacenar en caché las respuestas, así:

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

Me gustaría que Squid acepte la conexión del cliente e intente entregar la respuesta desde su caché.antesintentando conectarse al servidor ascendente.

Sin embargo, primero intenta conectarse al servidor y devuelve un error 503 si no se puede acceder al servidor (porque la red está fuera de línea, por ejemplo):

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

Cuando la red esté disponible y se pueda acceder al host ascendente, Squid estará feliz de servir desde su caché en memoria:

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

Respuesta1

El uso client-firstparece funcionar:

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

Sin embargo, esta es una opción obsoleta desde hace mucho tiempo y no funcionará para interponer todo tipo de conexión TLS.

información relacionada