使用 GnuTLS 或 OpenSSL 构建的 Squid 6.13 可以通过 TLS 接收正向代理请求。这保护的是客户端到代理的链路,不会拦截HTTPS 目标独立的会话。

  1. 为客户端连接 Squid 时使用的主机名取得证书。私钥只应允许需要它的服务身份访问。
  2. 用分配给你的地址和真实证书路径添加 TLS 监听端:
https_port 192.0.2.10:3129 tls-cert=/etc/squid/proxy-chain.pem tls-key=/etc/squid/proxy-key.pem

保留客户端允许名单和目标限制,以及认证策略。添加监听端并不会授予访问权限。已有的 http_port 也仍会运行;如果所有客户端连接都必须使用 TLS,就删除或限制那个旧监听端。不需要启用加速器、拦截或证书生成模式。

重新加载目标服务前,先解析检查配置。解析检查验证的是结构和证书加载,不是网络可达性。重载成功后,从允许的客户端通过 TLS 端点发出请求:

curl --proxy https://proxy.example:3129 --proxy-cacert approved-proxy-ca.pem --connect-timeout 5 --max-time 15 https://example.com/

使用真实的代理主机名和获认可的 CA 文件。代理证书若受公共信任,可能不需要自定义证书包。--proxy-cacert 配置代理的信任依据,目标验证仍是独立的;请保留两项检查。

检查实际监听情况和证书名称,再测试一个受控且应被拒绝的来源。仅仅解析成功,无法确认客户端信任是否正确,也无法确认访问边界。

相关文章