defaults ... option forwardfor option http-server-close frontend http bind *:80 alpn h2,http/1.1 http-response set-header Strict-Transport-Security "max-age=16000000;" acl host_kc hdr(host) -i keycloak.demo.nethence.com redirect scheme https code 301 if host_kc frontend https bind *:443 ssl crt /etc/haproxy/certs/ alpn h2,http/1.1 http-response set-header Strict-Transport-Security "max-age=16000000;" acl host_kc hdr(host) -i keycloak.demo.nethence.com use_backend kc-server if host_kc # @dnc-keycloak - 10.1.0.19:8080 backend kc-server #balance leastconn http-request set-header X-Forwarded-Proto https server dnc-keycloak 10.1.0.19:8080 check
works fine if you enforce http/2 also