即使普通 HTTPS 在 443 上正常工作,8443 端口上的 HTTPS 服务也可能无法通过配置正确的 Squid 代理。更改客户端代理协议前,先检查CONNECT 拒绝记录和目标端口策略。

典型的 Squid 6.13 访问策略中有两项关键检查:目标必须通过 Safe_ports,CONNECT 必须通过 SSL_ports。仅将端口加入其中一个 ACL,另一项拒绝仍可能生效。

有针对性地扩展现有定义

对于允许普通 Web 端口和一个额外 HTTPS 端口的策略:

acl Safe_ports port 80 443 8443
acl SSL_ports port 443 8443

替换或编辑对应定义,避免意外保留旧的一组值。保留常规的不安全端口拒绝规则、CONNECT 拒绝规则,以及预期的客户端限制。

严格限制例外范围

如果额外端口只用于一个受控目标,在客户端允许规则之前加入定向拒绝:

acl extra_tls_port port 8443
acl approved_tls_target dst 203.0.113.20/32
http_access deny CONNECT extra_tls_port !approved_tls_target

这里的地址是文档占位符。使用你管理或获准访问的目标,并考虑其实际地址变化。这会限制额外端口例外的范围,而不是允许访问 8443 上的所有目标。

对完整的生效配置进行语法解析,并检查规则顺序。即使拒绝规则写法正确,放在匹配的客户端允许规则之后,也无法实现预期限制。

使用真实证书和端口测试获准的主机名,再测试应当继续被拒绝的受控目标。保持 TLS 验证开启,以区分目标身份错误和代理策略错误。不要为了让一个自定义端口请求成功,就删除整个 CONNECT 防护。

相关文章