HAProxy para encerrar o SSL também envia SSL para o servidor backend

10

Eu gostaria de encerrar o SSL no HAProxy, fazer alguma manipulação no cabeçalho, reescrever o URL e criptografar novamente o tráfego e enviar para os servidores de back-end como SSL?

Não consigo encontrar uma maneira de fazer isso. Eu posso terminar a terminação SSL regular e enviar solicitações HTTP simples para o back-end. Mas preciso enviar SSL para o backend.

Gostaria de ter os seguintes recursos:

  • Extraia os cabeçalhos x-forwarded-para obter o IP do cliente real por trás do proxy.
  • Implemente a aderência da sessão usando o cookie.
  • Reescreva o URL.
  • Envie o tráfego SSL para o back-end usando a funcionalidade de sessão baseada em cookies.

A menos que eu termine o SSL no final do haproxy, não consigo fazer a regravação do URL.

Qualquer ajuda das pessoas boas aqui seria muito apreciada.

    
por oazabir 21.11.2015 / 20:38

1 resposta

24

Não há nada especial para fazer no haproxy.cfg. Você simplesmente faz qualquer URL que reescreve e manipula os cabeçalhos que você quer dentro do seu frontend HAProxy e então redireciona o tráfego para o seu backend SSL. Aqui está um exemplo rápido:

frontend app1_ssl
    bind *:443 ssl crt /etc/haproxy/certs.d/example.com.crt crt /etc/haproxy/certs.d/ no-sslv3

    option http-server-close
    option forwardfor
    reqadd X-Forwarded-Proto:\ https
    reqadd X-Forwarded-Port:\ 443

    # set HTTP Strict Transport Security (HTST) header
    rspadd  Strict-Transport-Security:\ max-age=15768000

    # some ACLs and URL rewrites...

    default_backend             backend_app1_ssl


backend backend_app1_ssl
    server mybackendserver 127.0.01:4433 ssl verify none
    
por 21.11.2015 / 22:14

Tags