[squid-users] Squid 4 ssl_bump issue
Amos Jeffries
squid3 at treenet.co.nz
Thu Apr 4 10:35:22 UTC 2019
On 4/04/19 10:11 pm, Davide Belloni wrote:
> Hi,
> I've a problem in Ubuntu 18.04.2 with Squid 4.6 compiled with OpenSSL
> 1.1 about ssl_bump. The same configuration works in Squid 3.5 and
> OpenSSL 1.0
>
> Here the relevant conf :
>
> ...
> http_port 3128 ssl-bump options=ALL:NO_SSLv3 connection-auth=off
> generate-host-certificates=off cert=/etc/squid/squidCA.pem
>
There are several differences which are relevant here.
Firstly, the options= setting in v4 is buggy right now.
Secondly, that "ALL" setting enables a large number of highly unsafe
OpenSSL features. It is not a good idea to use that.
Thirdly, v4 now checks the contents of that squidCA.pem file and only
loads the actually needed cert/key/chain objects. v3 would load
everything even if the cert properties were forbidden for use by a proxy
or HTTP server.
> # Not bypass server certificate validation errors
> sslproxy_cert_error deny all
> # This one return errors with debian on GCP
> (https://wiki.squid-cache.org/KnowledgeBase/HostHeaderForgery)
> host_verify_strict off
The above two directives are setting the defaults. It is only a waste of
CPU cycles to configure that in any Squid version. No need to configure
these at all.
>
> sslproxy_session_cache_size 0
>
> acl step1 at_step SslBump1
> acl step2 at_step SslBump2
> acl step3 at_step SslBump3
>
> ssl_bump peek step1 all
> ssl_bump peek step2 all
>
> # API Google
> acl api_google_urls url_regex
> ^(https?:\/\/)?.*\.googleapis\.com(:443)?($|\/)
> acl api_google_urls url_regex
> ^(https?:\/\/)?.*\.google\.com(:443)?($|\/)
> acl api_google_urls url_regex
> ^(https?:\/\/)?.*\.cloud\.google\.com(:443)?($|\/)
> acl api_google_urls url_regex
> ^(https:\/\/)?([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})
These regex are overly complex. These two patterns cover the same set of
URLs:
acl api_google_urls url_regex \
\.google(apis)?\.com(:443)?($|\/)
^(https:\/\/)?([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})
> acl api_google_ssl ssl::server_name_regex .*\.googleapis\.com
> acl api_google_ssl ssl::server_name_regex .*\.google\.com
> acl api_google_ssl ssl::server_name_regex .*\.cloud\.google\.com
Same with these ones:
acl api_google_ssl ssl::server_name_regex \.google(apis)?\.com
> acl api_google_ips srcĀ 127.0.0.1/32
>
> http_access allow api_google_ips api_google_urls
> ssl_bump splice step3 api_google_ips api_google_ssl
>
> http_access deny all
> ssl_bump terminate step3 all
> ...
>
>
...
>
> I'm upgrading to Squid4 with OpenSSL 1.1 because with Squid3 Ive some
> connections that get stuck (for example
> https://packages.cloud.google.com/apt/doc/apt-key.gpg) I think for
> unsupported ciphers.
>
> But with Squid4 and OpenSSL1.1 I've this lines in cache log:
>
> 2019/04/04 08:49:15 kid1| ERROR: client https start failed to
> allocate handle: error:140AB043:SSL
> routines:SSL_CTX_use_certificate:passed a null parameter
>
Check the SquidCA.pem file actually contains a valid X.509 server CA
certificate and matching key.
> 2019/04/04 08:49:15 kid1| ERROR: could not create TLS server context
> for local=127.0.0.1:3128 <http://127.0.0.1:3128>
> remote=127.0.0.1:39203 <http://127.0.0.1:39203> FD 19 flags=1
>
This must be fixed before any more advanced tests are worth performing.
Their results will be invalid until Squid has an operational TLS context.
Amos
More information about the squid-users
mailing list