Haproxy 后端服务器由于第 6 层无效响应 SSL 握手失败而关闭?

Haproxy 后端服务器由于第 6 层无效响应 SSL 握手失败而关闭?

我们有两台服务器,它们位于不同的网络中。我们希望从客户端到前端以及从前端到后端建立 SSL 通信。

前端能够接收和终止 ssl 流量,但后端 ssl 通信未发生,并出现以下错误:

服务器节点/web02 已关闭,原因:Layer6 无效响应,信息:“SSL 握手失败”,检查时长:546ms”

haproxy 配置文件:


global
  log 127.0.0.1 local1 debug
  maxconn 4000
  daemon
  uid 99
  gid 99
  stats socket /tmp/haproxy.stats level admin

defaults
  mode http
  log     global
  option forwardfor
  option http-server-close
  timeout server 5s
  timeout connect 5s
  timeout client 5s




frontend www-https
   bind  <Ip-address>:443 ssl crt /home/user/SSL/domain-name.in.pem
   reqadd X-Forwarded-Proto:\ https
   default_backend nodes


backend nodes
   
    balance roundrobin
    cookie JSESSIONID prefix indirect nocache
   server web01 <IP-address>:8443 ssl verify none check cookie web01
    server web02 <IP-address>:8443  ssl  crt /home/SSL/domain-name.in.pem ca-file /home/SSL/gdig2.crt  verify required   check cookie web02

非常感谢您的帮助

答案1

我们希望从前端到后端建立 SSL 通信

这毫无意义:haproxy 前端和 haproxy 后端之间没有 TCP 通信。这是 haproxy 进程内部的逻辑映射。您的实际后端 TLS 是在后端服务器本身上配置<IP-address>:8443web02

因此,SSL handshake failure您收到的原因是 HAproxy 无法使用给定的ca-file证书验证 web02 的证书。或者您的客户端身份验证失败(通过 指定的客户端身份验证server web02 ... ssl crt ...)。查看后端行:

server web02 <IP-address>:8443  ssl  crt /home/SSL/domain-name.in.pem ca-file /home/SSL/gdig2.crt  verify required   check cookie web02

您确定要使用客户端身份验证吗?如果是,请验证您的客户端证书:对我来说,使用相同的证书进行客户端身份验证和在前端 haproxy 规范中为 TLS 提供服务的证书 ( /home/SSL/domain-name.in.pem) 是非常不寻常的。

相关内容