<div dir="ltr">Hi, Hoping someone can help me with this issue that I have been struggling with for days now.   I am setting up squid on an ubuntu PC to forward HTTPS requests to an API and an s3 bucket under my control on amazon AWS.  The reason I am setting up the proxy is two-fold...<br><br>1) To reduce costs from AWS.<br>2) To provide content to the client on the ubuntu PC if there is a networking issue somewhere in between the ubuntu PC and AWS.<br><br>Item 1 is going well so far.   Item 2 is not going well.   Setup details ...<br><br><b># squid - setup cache folder</b><br>mkdir -p /var/cache/squid<br>chown -R proxy:proxy  /var/cache/squid<br><br><b># ssl - generate key</b><br>apt --yes install squid-openssl libnss3-tools<br>openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 \<br>  -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=<a href="http://www.example.com">www.example.com</a>" \<br>  -keyout /etc/squid/stuff.pem -out /etc/squid/stuff.pem<br>chown root:proxy /etc/squid/stuff.pem <br>chmod 644  /etc/squid/stuff.pem<br><br><b># ssl - ssl DB</b><br>mkdir -p /var/lib/squid<br>rm -rf /var/lib/squid/ssl_db<br>/usr/lib/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 4MB<br>chown -R proxy:proxy /var/lib/squid/ssl_db<br><br><b># /etc/squid/squid.conf :</b><br>acl to_aws dstdomain .<a href="http://amazonaws.com">amazonaws.com</a><br>acl from_local src localhost<br>http_access allow to_aws<br>http_access allow from_local<br>cache allow all<br>cache_dir ufs /var/cache/squid 1024 16 256<br>offline_mode on<br>http_port 3129 ssl-bump cert=/etc/squid/stuff.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB<br>sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 4MB<br>acl step1 at_step SslBump1 <br>ssl_bump peek step1 <br>ssl_bump bump all <br>sslproxy_cert_error deny all<br>cache_store_log stdio:/var/log/squid/store.log<br>logfile_rotate 0<br><br><b># /usr/bin/proxy-test :</b><br>#!/bin/bash<br>curl --proxy <a href="http://localhost:3129">http://localhost:3129</a> \<br>  --cacert /etc/squid/stuff.pem \<br>  -v "<a href="https://stuff.amazonaws.com/api/v1/stuff/stuff.json">https://stuff.amazonaws.com/api/v1/stuff/stuff.json</a>" \<br>  -H "Authorization: token MYTOKEN" \<br>  -H "Content-Type: application/json" \<br>  --output "/tmp/stuff.json"<br><br><br><br>When network connectivity is GOOD, everything works well and I get cache HITS ...  <br><br><b># /var/log/squid/access.log</b><br>1705587538.837    238 127.0.0.1 NONE_NONE/200 0 CONNECT <a href="http://stuff.amazonaws.com:443">stuff.amazonaws.com:443</a> - HIER_DIRECT/<a href="http://3.136.246.238">3.136.246.238</a> -<br>1705587538.838      0 127.0.0.1 TCP_MEM_HIT/200 32818 GET <a href="https://stuff.amazonaws.com/api/v1/stuff/stuff.json">https://stuff.amazonaws.com/api/v1/stuff/stuff.json</a> - HIER_NONE/- application/json<br><br><b># extract from /usr/bin/proxy-test output</b><br>< HTTP/1.1 200 OK<br>< Date: Thu, 18 Jan 2024 13:38:01 GMT<br>< Content-Type: application/json<br>< Content-Length: 32187<br>< x-amzn-RequestId: 8afba80e-6df7-4d5b-a34b-a70bd9b54380<br>< Last-Modified: 2024-01-03T11:23:19.000Z<br>< Access-Control-Allow-Origin: *<br>< x-amz-apigw-id: RvN1CF2_iYcEokA=<br>< Cache-Control: max-age=2147483648,public,stale-if-error<br>< ETag: "53896156c4e8e26933188a092c4e40f1"<br>< X-Amzn-Trace-Id: Root=1-65a929b9-3bd3285934151c1a2495481a<br>< Age: 2578<br>< Warning: 110 squid/5.7 "Response is stale"<br>< X-Cache: HIT from ubuntu-pc<br>< X-Cache-Lookup: HIT from ubuntu-pc:3129<br>< Via: 1.1 ubuntu-pc (squid/5.7)<br>< Connection: keep-alive<br><br><br>When network connectivity is BAD, I get errors and a cache MISS.   In this test case I unplugged the ethernet cable from the back on the ubuntu-pc ... <br><br><b># /var/log/squid/access.log</b><br>1705588717.420     11 127.0.0.1 NONE_NONE/200 0 CONNECT <a href="http://stuff.amazonaws.com:443">stuff.amazonaws.com:443</a> - HIER_DIRECT/<a href="http://3.135.162.228">3.135.162.228</a> -<br>1705588717.420      0 127.0.0.1 NONE_NONE/503 4087 GET <a href="https://stuff.amazonaws.com/api/v1/stuff/stuff.json">https://stuff.amazonaws.com/api/v1/stuff/stuff.json</a> - HIER_NONE/- text/html<br><br><b># extract from /usr/bin/proxy-test output</b><br>< HTTP/1.1 503 Service Unavailable<br>< Server: squid/5.7<br>< Mime-Version: 1.0<br>< Date: Thu, 18 Jan 2024 14:38:37 GMT<br>< Content-Type: text/html;charset=utf-8<br>< Content-Length: 3692<br>< X-Squid-Error: ERR_CONNECT_FAIL 101<br>< Vary: Accept-Language<br>< Content-Language: en<br>< X-Cache: MISS from ubuntu-pc<br>< X-Cache-Lookup: NONE from ubuntu-pc:3129<br>< Via: 1.1 ubuntu-pc (squid/5.7)<br>< Connection: close<br><br>I have also seen it error in a different way with a 502 but with the same ultimate result.<br><br>My expectation/hope is that squid would return the cached object on any network failure in between ubuntu-pc and the AWS endpoint - and continue to return this cached object forever.   Is this something squid can do?   It would seem that offline_mode should do this?<br><br>Hope you can help,<br><br>Robin<br><br><br></div>