Redirección de URL y proxy TCP en haproxy

Redirección de URL y proxy TCP en haproxy

En un servidor con solo un ipv4 y ejecutando haproxy, quiero redirigir una URL y representar otra en el nivel TCP, para fines de paso de SSL.

frontend https-frontend
  bind *:443
  mode tcp
  option tcplog
  tcp-request inspect-delay 5s
  tcp-request content accept if { req_ssl_hello_type 1 }
  use_backend proxy-backend if { req.ssl_sni -i proxied-url.com }
  redirect prefix https://url-rewrited.com code 301 if  { req.ssl_sni -i domain-for-redirect.com }

Pero el prefijo de redirección requiere el modo http y el paso de proxy requiere el modo tcp.

[WARNING] 347/153600 (1324) : config : 'redirect' rules ignored for frontend 'https-frontend' as they require HTTP mode.

Si uso dos interfaces vinculantes en 443, se producen errores al cargar páginas.

¿Cómo puedo proceder?

EDITAR

Intenté hacer un backend http para la redirección

frontend https-frontend
  bind *:443
  mode tcp
  option tcplog
  tcp-request inspect-delay 5s
  tcp-request content accept if { req_ssl_hello_type 1 }
  use_backend proxy-backend if { req.ssl_sni -i proxied-url.com }
  use_backend redirect-backend if  { req.ssl_sni -i domain-for-redirect.com }

backend redirect-backend
  mode http
  option ssl-hello-chk
  redirect prefix https://url-rewrited.com code 301 if { req.ssl_sni -i domain-for-redirect.com }

Pero cuando voy a domain-for-redirect.com obtengo ERR_SSL_PROTOCOL_ERROR. ¿Cómo puedo cargar el certificado en el backend?

Respuesta1

debe agregar la opción ssl con un certificado ssl válido o autofirmado: en su lugar: bind *:443 use: bind *:443 ssl crt /etc/ssl/private/certFileName.pem

información relacionada