我正在尝试使用端口 443 通过 https 连接到 2 个后端服务器,我想找到一种方法将 key 和证书文件发送到后端服务器。我的 haproxy.cfg 是:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#chroot /usr/share/haproxy
user haproxy
group haproxy
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen stats :8000
#mode http
stats enable
stats realm Haproxy\ Statistics
stats uri /
stats auth admin:password
listen ssl-relay :80
mode tcp
balance roundrobin
stick-table type ip size 200m expire 30m
stick on src
server server01 www.example.com:443 check inter 2000 fall 3
server server02 www.example.com:443 check inter 2000 fall 3
如何让haproxy服务器和后端服务器之间的通信安全???
您的客户会使用 https://myfakepage.com:80作为网址?如果不是,那么你所做的基本上毫无意义。您正在处理与前端的未加密连接,然后是与后端的加密连接。问题是当连接返回到客户端时,它将是未加密的,所以你不会给自己买任何东西。如果您的客户将使用 https://pmyfakepage.com:80那么就没有什么可做的了,因为 haproxy 已经充当了 https 流量的传递 channel 。
您是否尝试在负载均衡器上执行 SSL 终止,如果是,您正在向后执行
你的绑定(bind)部分看起来像
frontend ssl-site
bind *:443 ssl crt /path/to/bundle.pem #you need to make sure the whole cert path is in one pem file
reqadd X-Forwarded-Proto:\ https
default_backend myServers
backend myServers
balance roundrobin
server server1 www.example.com:80
server server2 www2.example.com:80
但正如 dtorgo 所述,以这种方式终止 SSL 仅适用于 1.5 及更高版本。如果您发现 stunnel 太慢,另一种选择是 stud。
希望这能帮您解决问题。
我是一名优秀的程序员,十分优秀!