[squid-users] Squid 4.3: SSL Bump fails to send client certificate

Sid SIDDH05 at gmail.com
Tue Oct 30 08:36:35 UTC 2018


Hi, 

I have following Squid version installed on CentOS 7: 
[root at localhost ~]# squid -v 
Squid Cache: Version 4.3 
Service Name: squid 

This binary uses OpenSSL 1.0.2k-fips  26 Jan 2017. For legal restrictions on
distribution see https://www.openssl.org/source/license.html

configure options:  '--prefix=/usr' '--includedir=/usr/include'
'--datadir=/usr/share' '--bindir=/usr/sbin' '--libexecdir=/usr/lib/squid'
'--localstatedir=/var' '--sysconfdir=/etc/squid' '--with-openssl'
'--enable-ssl-crtd' 

Squid.conf: 
# Recommended minimum configuration: 
# 

# Example rule allowing access from your local networks. 
# Adapt to list your (internal) IP networks from where browsing 
# should be allowed 
#acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN) 
#acl localnet src 10.0.0.0/8            # RFC 1918 local private network
(LAN) 
#acl localnet src 100.64.0.0/10         # RFC 6598 shared address space
(CGN) 
#acl localnet src 169.254.0.0/16        # RFC 3927 link-local (directly
plugged) machines 
#acl localnet src 172.16.0.0/12         # RFC 1918 local private network
(LAN) 
#acl localnet src 10.133.64.0/22                # RFC 1918 local private
network (LAN) 
acl localnet src 20.20.64.0/24 
acl localnet src 192.168.1.0/24 
#acl localnet src 10.133.65.0/22 
#acl localnet src 10.133.66.0/22 
#acl localnet src 10.133.67.0/22 
#acl localnet src fc00::/7              # RFC 4193 local private network
range 
#acl localnet src fe80::/10             # RFC 4291 link-local (directly
plugged) machines 

acl SSL_ports port 443 
acl SSL_ports port 8443 
acl Safe_ports port 80          # http 
acl Safe_ports port 21          # ftp 
acl Safe_ports port 443         # https 
acl Safe_ports port 8443         # https 
acl Safe_ports port 70          # gopher 
acl Safe_ports port 210         # wais 
acl Safe_ports port 1025-65535  # unregistered ports 
acl Safe_ports port 280         # http-mgmt 
acl Safe_ports port 488         # gss-http 
acl Safe_ports port 591         # filemaker 
acl Safe_ports port 777         # multiling http 
acl CONNECT method CONNECT 

# 
# Recommended minimum Access Permission configuration: 
# 
# Deny requests to certain unsafe ports 
http_access deny !Safe_ports 

# Deny CONNECT to other than secure SSL ports 
# Deny CONNECT to other than secure SSL ports 
http_access deny CONNECT !SSL_ports 

# Only allow cachemgr access from localhost 
http_access allow localhost manager 
http_access deny manager 

# We strongly recommend the following be uncommented to protect innocent 
# web applications running on the proxy server who think the only 
# one who can access services on "localhost" is a local user 
#http_access deny to_localhost 

# 
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS 
# 

# Example rule allowing access from your local networks. 
# Adapt localnet in the ACL section to list your (internal) IP networks 
# from where browsing should be allowed 
http_access allow localnet 
http_access allow localhost 

# And finally deny all other access to this proxy 
http_access deny all 

# Squid normally listens to port 3128 
#http_port 3128 

http_port 3128 ssl-bump \ 
  cert=/usr/local/squid/etc/ssl_cert/myCA.pem \ 
  generate-host-certificates=on dynamic_cert_mem_cache_size=4MB 

# For squid 3.5.x 
#sslcrtd_program /usr/local/squid/libexec/ssl_crtd -s /var/lib/ssl_db -M 4MB 

# For squid 4.x 
sslcrtd_program /usr/local/squid/libexec/security_file_certgen -s
/var/lib/ssl_db -M 4MB 

acl step1 at_step SslBump1 

ssl_bump peek step1 
ssl_bump bump all 

tls_outgoing_options cafile=/usr/local/squid/etc/UCAppsCA.pem 
sslproxy_foreign_intermediate_certs /usr/local/squid/etc/UCAppsCA.pem 

# Uncomment and adjust the following to add a disk cache directory. 
cache_effective_user squid 
cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 

# Leave coredumps in the first cache dir 
coredump_dir /usr/local/squid/var/cache/squid 

# 
# Add any of your own refresh_pattern entries above these. 
# 
refresh_pattern ^ftp:           1440    20%     10080 
refresh_pattern ^gopher:        1440    0%      1440 
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0 
refresh_pattern .               0       20%     4320 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Browser & HTTP UA Client connections are working with SSL bump properly; but
except for one connection. 

Server sends certificate with SNI; but squid forwards it as IP Address to
client 
1540529604.672     49 20.20.64.91 NONE/200 0 CONNECT 20.20.64.56:443 -
HIER_DIRECT/20.20.64.56 - 

When I took wireshark on Squid; I can see Squid sends: 

61 Alert (Level: Fatal, Description: Internal Error) to certificate sent by
Server 

cache.log: 
2018/10/30 12:55:47 kid1| ERROR: negotiating TLS on FD 21:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify
failed (1/-1/0) 
2018/10/30 12:55:47 kid1| ERROR: negotiating TLS on FD 21:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify
failed (1/-1/0) 

This is an internal server with its own CA certs. 




--
Sent from: http://squid-web-proxy-cache.1019090.n4.nabble.com/Squid-Users-f1019091.html


More information about the squid-users mailing list