On 16/02/2023 10:56 am, squid wrote:
I have a reverse proxy that that does the following:
acl example_www url_regex -i ^https?:\/\/example-www?.example.com.*
http_access allow internal_IPs example_www
deny_info https://other-www.other.com%R example_www
http_access deny example_www
When a tool or a browser goes to http://example-www.example.com it immediately
sends them to https://other-www.other.com as expected.
When opening an http:// URL Browsers etc send a message with the full
URL including path to Squid. That provides the %R information your rules
use to redirect them.
Browser:
GET http://example-www.example.com/path HTTP/1.1
...
Squid:
HTTP/1.1 304
...
Location: https://other-www.other.com/path
Browser:
... initiates request for https://other-www.other.com/path
When a tool or a browser goes to https://example-www.example.com it brings up
in chrome the Your connection is not private page and when you hit Advanced and
hit the allow to proceed it is then redirected to the site.
When opening an https:// URL Browsers etc send a CONNECT message
requesting Squid open a tunnel to the server. That lacks the %R
information your rules use.
Browser:
CONNECT example-www.example.com:443 HTTP/1.1
...
Squid:
HTTP/1.1 304
...
Location: https://other-www.other.com/
Browser:
... initiate request for https://other-www.other.com/
This is causing us come compliance issues due to the tool thinking we are
running a non-compliant https page since user interaction is required to get to
the other page.
Is there a way to send to the other page earlier so the tool or user doesn't
even see the Your connection is not private page? I just want to only aloow
the internal IPs and cut everyone else off.
As you noticed the Browser displays that warning dialog when it receives
a 304. AFAIK, the only response status that Browser permit to do
anything at all on a CONNECT request are the 200 and 304 ones.
Everything else gets replaced by a Browsers error page. The non-Browser
tools may display an error from Squid, YMMV based on tool.
Squid contains the SSL-Bump feature to decrypt the TLS inside the
tunnel. If you have the clients trusting Squid CA certificate you can
decrypt the TLS and redirect those messages instead of the CONNECT tunnel.
I've tried taking out the deny_info, but that sends the user and tool to a
squid error page which basically fails the test as well since it's on the same
site.
I've also tried doing a TCP_RESET instead, but for some reason the squid
actually send the word reset back to the client the first time and again would
fail the test.
That is a bug. It should be delivering only a TCP RST packet, not any
text words. Which Squid version are you using?
If you end up using SSL-Bump it has a "terminate" action which does the
same/equivalent for TLS protocol.
HTH
Amos
_______________________________________________
squid-users mailing list
squid-users@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-users