我有许多服务器,我希望它们在通过互联网发出请求时具有相同的 IP。因此,我配置了一个 Squid HTTP 代理服务器,它可以很好地处理 HTTP 请求。问题是它不适用于 HTTPS 请求(我的服务器的实际 IP 出现了...)。
你有解决方案吗?
答案1
答案2
现在我的 ssl-bump 规则已设置完毕,并且运行正常:
http_port 3128
http_port 3129 intercept
https_port 3130 intercept ssl-bump connection-auth=off generate-host-certificates=on dynamic_cert_mem_cache_size=8MB cert=/etc/squid/ssl/squid.pem key=/etc/squid/ssl/squid.key cipher=ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA:AES128-SHA:RC4-SHA:HIGH:!aNULL:!MD5:!ADH
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid_ssl_db -M 8MB
sslcrtd_children 50 startup=5 idle=1
ssl_bump server-first all
ssl_bump none localhost
然后只需将 HTTP 和 SSL 代理都设置为服务器和端口 3128。
答案3
如果您只想通过静态 IP 转发请求,则基本 squid 配置(不带 ssl_bump)应该可以正常工作。
您可以按照以下方式结合 ACL 规则和身份验证使用它:
https_port 8443 cert=/etc/certs/proxy-fullchain.pem key=/etc/ssl/private/proxy.key
因此我可以通过代理服务器发出请求:
curl --proxy https://user:[email protected]:8443 https://target.example.com
如果您需要拦截连接以根据其内容应用规则,那么您需要拦截 SSL 拦截