You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Squid v3.5.27启用SSLbump后认证用户遭403拒绝问题求助

解决Squid SSL-Bump场景下已认证用户触发TCP_DENIED/403的问题

从你的日志和配置来看,问题的核心在于SSL-Bump封装请求的认证处理逻辑:

当启用ssl_bump bump all时,Squid会先和客户端建立SSL连接(此时完成用户认证),然后再与目标服务器建立连接,这个过程中产生的内层封装请求,Squid会跳过认证检查(日志里的SslBumped request: It is an encapsulated request do not authenticate就是明证)。但你的basicauth ACL(proxy_auth_regex -i service)会被应用到所有请求上,包括这些封装请求——而此时Squid无法获取到用户名信息,导致proxy_auth_regex的匹配结果异常(误判为匹配,即basicauth = 1),最终触发http_access deny basicauth规则,返回403。

解决方案:区分初始请求与SSL-Bump封装请求

我们需要调整规则,让基于用户名的ACL检查只作用于初始的客户端请求,而跳过封装请求。具体步骤如下:

  1. 修改squid.conf,新增一个ACL来匹配未被SSL-Bump封装的初始请求:
acl non_ssl_bumped not ssl_bumped
  1. 调整http_access deny basicauth规则,限制其仅对初始请求生效:
# 原规则:http_access deny basicauth
# 修改为:
http_access deny basicauth non_ssl_bumped
  1. 完整的配置片段如下:
acl auth proxy_auth REQUIRED
acl basicauth proxy_auth_regex -i service
acl non_ssl_bumped not ssl_bumped

http_access deny !auth
http_access deny basicauth non_ssl_bumped
http_access allow all

http_port 0.0.0.0:3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/etc/squidCA.pem
ssl_bump bump all
sslproxy_cert_error deny all
sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /etc/squid/ssl_db -M 10MB
  1. 重启Squid服务:
service squid restart

原理说明

  • ssl_bumped ACL会匹配所有被SSL-Bump处理的封装请求,non_ssl_bumped则匹配初始的客户端请求
  • 修改后的规则只会在用户首次连接代理(完成认证的阶段)检查用户名是否为service开头,拒绝这类用户;而后续的封装HTTPS请求不会再触发这个检查,已认证的合法用户(比如你的USERTEST)就能正常访问目标网站

内容的提问来源于stack exchange,提问作者Pavelll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:23:11