O NGINX pode inspecionar o pedido de TLS para procurar por SNI como o HAProxy (etc)?

2

Parece que, ao configurar o HAProxy para roteamento de nome de host em conexões HTTPS, é crucial incluir uma diretiva tcp-request inspect-delay para "dar ao HAProxy uma chance de examinar a conexão". Existe uma maneira de obter o NGINX para o mesmo, ou devo começar a empacotá-lo e mover todo o meu servidor para o HAProxy?

(Para referência, esta pergunta vem do meu mal-entendido anterior, expresso aqui )

EDITAR

Michael, nos comentários:

he seems to want to "sniff" SNI from the client's handshake attempt without actually terminating the TLS connection, in order to make a lower-layer connection-proxying decision and blindly carry the payload to a subsequent machine for termination of the TLS, because for some reason he doesn't want the TLS certs and keys on the proxy, or for the proxy to do the TLS at all -- just sniff the SNI and make an inward TCP connection using a rule derived from its content.

O motivo é que eu preciso dos certificados e chaves dentro dos aplicativos de backend (alguns exigem isso por um motivo ou outro), então eu tenho que fornecer isso para eles. Ter que configurá-los no proxy também duplica duplamente o trabalho de manutenção e a chance de erro. Se eu pudesse fazer sem manter acesso aos certificados para o proxy, isso tornaria minha arquitetura muito mais fácil e diminuiria as chances de erros.

    
por Morpheu5 22.05.2016 / 19:43

1 resposta

4

O módulo ngx_stream_ssl_preread_module está disponível a partir do Nginx 1.11.5 e parece fazer exatamente isso .

Permite acesso ao nome do servidor SNI encontrado na mensagem ClientHello do cliente por meio da variável $ssl_preread_server_name .

Esta informação pode ser usada para rotear uma conexão TCP ("stream") para um back-end. A documentação do módulo fornece um exemplo de como fazer isso.

    
por 05.04.2017 / 12:35