O NGINX suporta SNI ou não?

3

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

De acordo com o que eu li por aí (e eu tenho dito ), o NGINX não deve suportar SNI e Eu deveria ir para o HAProxy para um proxy reverso SSL-transparente. Bem. No entanto, isso parece sugerir que o NGINX de fato suporta SNI, mas não consigo encontrar um único pedaço de documentação útil ao redor. Ou seja, tudo o que consegui encontrar implicou que eu ainda tinha que fornecer o NGINX com os certificados para que ele pudesse corresponder ao nome do host da solicitação. Mas não é exatamente esse o problema que a SNI tenta resolver?

Agora, estou começando a executar um número considerável de sites HTTPS diferentes no mesmo endereço IP, o que prejudica a manutenção da mesma informação em várias configurações diferentes. Por isso, gostaria de saber se É melhor deixar o NGINX e aprender mais um software (também conhecido como HAProxy) ou se eu posso realmente ficar com o NGINX - e como.

Idealmente, eu gostaria que o proxy fornecesse um túnel transparente para o tráfego criptografado, e apenas o cliente e o servidor de back-end (digamos, Apache ou qualquer outro aplicativo que eu esteja executando) deveriam ser capazes para descriptografá-lo - o que significa que não terei que manter as informações dos certificados na configuração do proxy reverso. Significa que eu posso ir daqui

server {
    listen 443 default ssl;

    server_name example.org;
    add_header X-Clacks-Overhead "GNU Terry Pratchett";

    ssl on;
    ssl_certificate         /etc/le_certs/example.org/live/example.org/fullchain.pem;
    ssl_certificate_key     /etc/le_certs/example.org/live/example.org/privkey.pem;

    location / {
        proxy_pass_header   Server;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_pass          https://exampleapp;
    }
}

para cá

server {
    listen 443 default ssl;

    server_name example.org;
    add_header X-Clacks-Overhead "GNU Terry Pratchett";

    location / {
        proxy_pass_header   Server;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_pass          https://exampleapp;
    }
}

com o benefício adicional de que o contêiner do proxy não precisará ter acesso aos certificados (considerando que essa é uma configuração do Docker, há uma enorme quantidade de volumes montados, o que resulta em ainda mais manutenção).

    
por Morpheu5 21.05.2016 / 18:56

1 resposta

1

Você entendeu mal a "falta" do suporte ao SNI.

Primeiro, nginx geralmente é bom para configuração SSL" curinga ". O problema de suporte está em clientes antigos (ou seja, navegadores), que não são capazes de lidar com o SNI .

    
por 21.05.2016 / 19:04