Redirecionamento de URL e proxy TCP em haproxy

Redirecionamento de URL e proxy TCP em haproxy

Em um servidor com apenas um ipv4 e executando haproxy, quero redirecionar uma url e proxy para outra no nível TCP, para fins de passagem 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 }

Mas o prefixo de redirecionamento requer o modo http e a passagem do proxy requer o modo tcp.

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

Se eu usar ligação de dois frontends em 443, ocorrerão erros ao carregar páginas.

Como posso proceder?

EDITAR

Tentei fazer um backend http para redirecionamento

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 }

Mas quando vou para domain-for-redirect.com recebo ERR_SSL_PROTOCOL_ERROR. Como posso carregar o certificado no backend?

Responder1

você precisa adicionar a opção SSL com certificado SSL válido ou autoassinado: em vez disso: bind *:443 use: bind *:443 ssl crt /etc/ssl/private/certFileName.pem

informação relacionada