HAProxy no realiza búsqueda SNI

HAProxy no realiza búsqueda SNI

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.comque son ACL para usar al redirigir a un determinado backend. Mi mejor intento fue consultar req_ssl_sni -m foundy 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

información relacionada