我正在尝试使用端口 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 流量的传递。
您是否尝试在负载均衡器上执行 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 太慢,另一个选择是螺柱。
希望这能为您解决问题。
关于ubuntu - Haproxy 1.4 连接到 https 后端服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18516959/