
HAProxy v.1.5.18, 1.7.11, escuchando en una única dirección IP con un certificado SSL comodín, necesito especificar varios servidores con búsqueda SNI. Hay un montón de archivos de configuración que dicen req_ssl_sni -i hostname.example.com
que son ACL para usar al redirigir a un determinado backend. Mi mejor intento fue consultar req_ssl_sni -m found
y descubrir que SNI es inaccesible en la interfaz. ¿Cómo hacer que la búsqueda SNI funcione con un único certificado HTTPS?
haproxy.cfg requerido es el siguiente:
frontend https
bind *:443 ssl interface eth1 crt /etc/haproxy/allstar.company.com.pem
tcp-request inspect-delay 5s
tcp-request content accept if { req.ssl_hello_type 1 }
acl to_webcam req.ssl_sni -i webcam.company.com
acl to_jira req.ssl_sni -i jira.company.com
use_backend webcam if to_webcam
use_backend jira if to_jira
default_backend no_sni
backend webcam
acl webcam_auth (hidden)
http-request auth realm webcam if !webcam_auth
server ws01 10.x.x.x:8080
backend no_sni
acl webcam_auth2 (hidden)
http-request auth realm webcam-no-sni if !webcam_auth2
server ws01 10.x.x.x:8080
backend drop403
http-request deny
backend jira
server jira-test 10.x.x.y:8080
Los valores globales y predeterminados no se modifican. Con esta configuración, el único backend al que accedo es no-sni que solicita autenticación HTTP. ¡¿Qué carajo?!
Respuesta1
Por si acaso alguien tropezara.Este sitiodijo literalmente: "Todo lo que necesita hacer para habilitar SNI es otorgarle a HAProxy múltiples certificados SSL". Por lo tanto, para tener encabezados SNI habilitados en la interfaz, es necesario tener varios archivos PEM condiferentecertificados. Aquí tenemos un único archivo PEM con un certificado comodín, por lo que SNI termina deshabilitado en haproxy. Por lo tanto, el filtrado y la redirección de ACL deben realizarse a través de hdr(host)
ACL, como si su backend fuera HTTP simple.
acl to_webcam hdr(host) -i webcam.company.com
acl to_jira hdr(host) -i jira.company.com
use_backend webcam if to_webcam
use_backend jira if to_jira