Thank you for your response.

Based on your reply, we have reviewed the configuration and observed the 
following behavior.

■ Relevant Configuration Snippet

acl bump_targets ssl::server_name "/home/user001/ssl_bump/ssl_bump_domain"
ssl_bump stare step1
ssl_bump bump step2 bump_targets
ssl_bump splice step2 !bump_targets
The /home/user001/ssl_bump/ssl_bump_domain file includes only:

[root@host squid]# cat /home/user001/ssl_bump/ssl_bump_domain
github.com
■ Observed Logs

26.56.128.144 - - [28/May/2025:10:25:18 +0900] "CONNECT mariadb.org:443 
HTTP/1.1" 200 0 "-" "curl/8.5.0" TCP_DENIED:HIER_NONE
26.56.128.144 - - [28/May/2025:10:25:18 +0900] "GET https://mariadb.org/donate/ 
HTTP/1.1" 403 4076 "-" "curl/8.5.0" NONE_NONE:HIER_NONE
As mariadb.org is not listed in the ssl_bump_domain file, we expected it to be 
spliced. However, the log indicates that Squid is able to see the full HTTPS 
URL, implying the connection was actually bumped.

■ Main Clarification Point

The key point we would like to confirm is:

In a configuration where ssl_bump is enabled, does Squid still allow the 
initial CONNECT request (returning 200) even for non-whitelisted domains, then 
wait for the client to send a follow-up HTTPS request (e.g., GET), which is 
then bumped and blocked (e.g., 403) by Squid?

Or alternatively:

Is Squid intentionally connecting to the origin server after CONNECT in order 
to generate an error page (403 etc.) that can be properly displayed to the 
client browser?

We would greatly appreciate clarification on the expected behavior and 
underlying mechanism in such cases.



> 2025/05/28 1:19、Alex Rousskov <rouss...@measurement-factory.com>のメール:
> 
> On 2025-05-27 10:37, Yves MARTIN wrote:
> 
>> My team expects to transparently rewrite requests through squid, replacing 
>> original URL/hostname by another target URL/host.
>> Main objective is to redirect original HTTPS requests triggered by “docker 
>> pull alpine” to a local mirrored registry without obvious information in 
>> user client that the obtained image comes from mirror: original image 
>> location is preserved, no specific proxy or mirror configuration in docker 
>> client/daemon to set.
>> To do so, we have used squid-urlrewrite and it works well for HTTP request, 
>> even if rewrite targets HTTPS URL.
>> But when original request is HTTPS, connection still goes to original 
>> URL/hostname IP address 
>> https://github.com/rchunping/squid-urlrewrite/issues/3 According to debug 
>> logs, the original request hostname is resolved to IP early and kept in 
>> internal context after squid-urlrewrite is invoked.
> 
> In most cases, when bumping connections from a TLS client to Squid and from 
> Squid to TLS server, Squid "pins" (i.e. remembers) the Squid-to-server 
> connection and then (re)uses that pinned connection for all requests received 
> on the client-to-Squid connection.
> 
> I have not checked, but speculate that rewriting request target does not 
> trigger opening a new Squid-to-server TLS connection and re-pinning.
> 
> IIRC, a Squid that is configured to bump during SslBump step1 does not pin. 
> Such a configuration is rarely usable on a modern internet, but YMMV.
> 
> 
> HTH,
> 
> Alex.
> _______________________________________________
> squid-users mailing list
> squid-users@lists.squid-cache.org
> https://lists.squid-cache.org/listinfo/squid-users

_______________________________________________
squid-users mailing list
squid-users@lists.squid-cache.org
https://lists.squid-cache.org/listinfo/squid-users

Reply via email to