几天来,我一直在绞尽脑汁尝试让白名单 squid 代理正常工作。这是我第一次使用 squid 4.11,我不记得以前使用旧版本时遇到过这么多问题。任何指导都将不胜感激。
简单概述一下,我将其配置为传统的正向代理,您必须明确说明您想要使用代理而不是拦截(如果我能让它工作的话,这是下一步。如果可能的话,我希望代理支持这两种情况)。
问题:当我通过 curl 访问指定代理的网站时,出现以下错误:
<pre>(71) Protocol error (TLS code: SQUID_ERR_SSL_HANDSHAKE)</pre>
<p>Handshake with SSL server failed: error:1425F175:SSL routines:ssl_choose_client_version:inappropriate fallback</p>
通过谷歌搜索,我发现这是我能找到的最接近我所遇到的问题的:
其中提到了密码的潜在问题并提出了一些解决方法,但它们都没有成功,而且似乎这个案例从未得到解决。
现在事情变得有趣了。经过进一步调查,我注意到了以下情况。如果我在谷歌上输入直卷曲,结果如下:
curl -k -v https://www.google.com --proxy 10.196.0.13:3128
密码套件是:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
错误是
<pre>(71) Protocol error (TLS code: SQUID_ERR_SSL_HANDSHAKE)</pre>
<p>Handshake with SSL server failed: error:1425F175:SSL routines:ssl_choose_client_version:inappropriate fallback</p>
现在,如果我添加以下参数来控制 TLS 的最小/最大版本
curl -k -v https://www.google.com --proxy 10.196.0.13:3128 --tlsv1.2 --tls-max 1.3
密码套件是:
TLS_AES_128_GCM_SHA256
我得到了一个成功的 200 响应以及网页内容。我在多个网站上测试过,结果也是成功的。
所以我想问题是,这是一个简单的案例,只需将正确的允许密码添加到 squid 配置中,以确保这些导致问题的密码不被允许?还是我错了?
以下是精简的 squid 配置以及我控制密码的尝试,但到目前为止没有任何效果
coredump_dir /var/spool/squid #Core Dump Location
cache deny all #Cache Deny
#dns_v4_first on
#Enabled Services
#http_port 3128
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB \
cert=/etc/squid/ssl/squid.crt \
key=/etc/squid/ssl/squid.key \
cafile=/etc/squid/ssl/squid.pem
tls_outgoing_options \
min-version=1.2 \
options=NO_SSLv3,SINGLE_DH_USE,SINGLE_ECDH_USE \
cipher=SHA256,AES128
#Mandatory Deny
http_access deny !Safe_ports #Deny unsafe ports
http_access deny CONNECT !SSL_ports #Deny CONNECT whre not over SSL Port
#Allow Manager Local Only
http_access allow localhost manager #Allow manager where local
http_access deny manager #Deny manager all other times
#Allow localhost and localnet ACLs
http_access allow localnet #Allow localnet ACLs
http_access allow localhost #Allow localhost
#Allow Whitelisted URLs everything else
http_access allow allowed_http_sites
http_access allow SSL_ports
ssl_bump peek step1 all
ssl_bump peek step2 allowed_https_sites
ssl_bump splice step3 allowed_https_sites
ssl_bump terminate step2 all
#Deny everything else
http_access deny all #Deny All