# Uses proxy protocol in HAProxy in combination with SNI to preserve the original host address # Update the config.json to work with HAProxy # Specify the IP addrehostname that the traffic will come from HAProxy (this might not be the address that is bound to the listener) # "tlsOffload": "10.1.1.10", # # Specify the HAPRoxy URL with the hostname to get the certificate # "certUrl": "https://mc.publicdomain.com:443/" frontend sni-front bind 10.1.1.10:443 mode tcp tcp-request inspect-delay 5s tcp-request content accept if { req_ssl_hello_type 1 } default_backend sni-back backend sni-back mode tcp acl gitlab-sni req_ssl_sni -i gitlab.publicdomain.com acl mc-sni req_ssl_sni -i mc.publicdomain.com use-server gitlabSNI if gitlab-sni use-server mc-SNI if mc-sni server mc-SNI 10.1.1.10:1443 send-proxy-v2-ssl-cn frontend cira-tcp-front bind 10.1.1.10:4433 mode tcp option tcplog tcp-request inspect-delay 5s default_backend mc-cira-back backend cira-tcp-back mode tcp server mc-cira 10.1.1.30:4433 frontend mc-front-HTTPS mode http option forwardfor bind 10.1.1.10:1443 ssl crt /etc/haproxy/vm.publicdomain.net.pem accept-proxy http-request set-header X-Forwarded-Proto https option tcpka default_backend mc-back-HTTP backend mc-back-HTTPS mode http option forwardfor http-request add-header X-Forwarded-Host %[req.hdr(Host)] option http-server-close server mc-01 10.1.1.30:443 check port 443 verify none # In the event that it is required to have TLS between HAProxy and Meshcentral, # Remove the tls_Offload line and replace with trustedProxy # Specify the IP addrehostname that the traffic will come from HAProxy (this might not be the address that is bound to the listener) # "trustedProxy": "10.1.1.10", # and change the last line of backend mc-back-HTTPS to use HTTPS by adding the ssl keyword # server mc-01 10.1.1.30:443 check ssl port 443 verify none