使用服务器证书,而不是 HAProxy 管理其后端服务器

使用服务器证书,而不是 HAProxy 管理其后端服务器

我正在尝试使用 HAProxy 创建一个环境,以允许使用 HAProxy 服务器(具有公共 IP 和本地私有 IP)通过 SSL 连接访问托管在本地服务器(具有私有 IP)上的网站。我不希望 HAProxy 服务器管理其后端服务器的 SSL 证书,而是让后端服务器(即本地私有服务器)自行管理证书,而 HAProxy 仅使用后端服务器的证书来创建连接。使用 HAProxy 可以实现这一点吗?

答案1

解决方案如下:使用 TPROXY,我们可以将客户端 IP 传递到实际服务器,而无需转发标头,并且它适用于 TCP 连接。

要求:

  1. 内核为 2.6.28 及以上的 Linux

  2. 支持 TPROXY 的 iptables 和 HAProxy

  3. 后端服务器必须使用安装 HAPRoxy 的节点作为默认网关

  4. 您已有一个有效的 HAProxy 配置

程序:

  1. 运行以下命令来标记和路由数据包
iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 111
iptables -t mangle -A DIVERT -j ACCEPT
ip rule add fwmark 111 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
  1. 设置节点处于转发模式:
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 1 > /proc/sys/net/ipv4/conf/eth0/send_redirects
  1. 在 HAProxy 后端代理配置部分添加:

源 0.0.0.0 使用 rc 客户端 ip

  1. 重新启动 HAProxy 服务。

  2. 完毕

我按照下面链接中提到的指南提供的步骤找到了解决方案: http://www.loadbalancer.org/blog/configure-haproxy-with-tproxy-kernel-for-full-transparent-proxy

相关内容