我有一个负载平衡器主机,一个数据库主机和一个密钥斗篷主机。 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