在haproxy中将SSL和非SSL后端与单个前端混合使用

时间:2018-11-01 18:25:37

标签: ssl haproxy

我有一个负载平衡器主机,一个数据库主机和一个密钥斗篷主机。 xyz.info域的ssl证书位于haproxy负载平衡器上,keycloak服务器为子域kc.xyz.info拥有自己的ssl证书,而db服务器没有或不需要自己的证书。

我想用ssl终止对数据库的请求,并让haproxy处理ssl方面。但是,对于keycloak服务器,我想使用ssl pass-through,并让keycloak服务器处理自己的ssl解密。 kc子域的所有流量都通过acl处理。

到数据库的通信正常,但是我无法使密钥斗篷服务器转发正常工作。我收到一条错误消息,指出证书是xyz.info而不是kc.xyz.info的证书,这是我尝试使用“ mode tcp”设置的证书。 是否可以在单个haproxy实例上同时混合ssl终止和ssl passthrough?

到目前为止,我有:

frontend lb
        bind *:80
        bind *:443 ssl crt /etc/letsencrypt/live/xyz.info/xyz.pem
        redirect scheme https if !{ ssl_fc }
        mode http
        acl kc hdr(host) -i kc.xyz.info
        use_backend keycloak if kc
        default_backend db

backend db
        mode http
        option forwardfor
        server db xx.xx.xx.xx:80

backend keycloak
        mode tcp
        option ssl-hello-chk
        server keycloak xx.xx.xx.xx:80

0 个答案:

没有答案