haproxy 和证书不匹配

haproxy 和证书不匹配

我已经与 Haproxy 搏斗了几个小时,但我可能以我有限的知识错过了一些东西。

我有两台服务器(ha1.domain.com 和 ha2.domain.com),均配有 keepalived 和 haproxy,用于管理其他两台服务器(mail1.domain.com 和 mail2.domain.com)之间的故障转移。有一个 VIP(域 mailserver.domain.com)。

当我通过浏览器连接到公共域时,出现错误,无法验证证书,因为域 (mailserver.domain.com) 与证书中的域 (mail1.domain.com 或 mail2.domain.com) 不匹配。避免此问题的最佳策略是什么?

我的 haproxy 配置:

global
    log 127.0.0.1   local0
    log 127.0.0.1   local1 debug
    maxconn   45000 # Total Max Connections.
    daemon
    nbproc      1 # Number of processing cores.

defaults
    timeout server 86400000
    timeout connect 86400000
    timeout client 86400000
    timeout queue   1000s

# [HTTP Site Configuration]
listen  http_web xxx.yyy.zzz.aaa:80
    bind *:80
    #bind *:443 ssl crt /etc/ssl/iredmail.org/iredmail.org.pem
    bind *:443 ssl crt /etc/haproxy/certs/ha2.domain.com.pem
    redirect scheme https if !{ ssl_fc }
    mode http
    balance roundrobin  # Load Balancing algorithm
    option httpchk
    option forwardfor
    cookie SRVNAME insert
    server mail1 bbb.ccc.ddd.eee:80 weight 1 maxconn 512 cookie SA check
    server mail2 bbb.ccc.fff.ggg:80 weight 1 maxconn 512 cookie SB check

# [HTTPS Site Configuration]
listen  https_web xxx.yyy.zzz.aaa:443
    mode tcp
    balance source# Load Balancing algorithm
    reqadd X-Forwarded-Proto:\ http
    server mail1 bbb.ccc.ddd.eee:443 weight 1 maxconn 512 check
    server mail2 bbb.ccc.fff.ggg:443 weight 1 maxconn 512 check

# Reporting
listen stats
bind :9000
mode http

# Enable statistics
stats enable

# Hide HAPRoxy version, a necessity for any public-facing site
stats hide-version

# Show text in authentication popup
stats realm Authorization

# URI of the stats page: localhost:9000/haproxy_stats
stats uri /haproxy_stats

# Set a username and password
stats auth Username:Password

谢谢

答案1

由于您不打算访问名称为mail1.domain.com或 的服务器mail2.domain.com,因此最简单的方法是为两台服务器获取名称为 的证书mailserver.domain.com

如果您希望服务器能够通过其自己的名称进行访问,请获取同时具有个人名称mail1.domain.commail2.domain.com和通用名称的证书mailserver.domain.com

相关内容