3 votes

NGINX supporte-t-il SNI ou pas ?

EDIT Nouvelle question : NGINX peut-il inspecter la requête TLS pour rechercher le SNI comme le fait HAProxy (etc) ?

D'après ce que j'ai lu autour de moi (et j'ai été a dit à ), NGINX ne devrait pas supporter SNI et je devrais opter pour HAProxy pour un reverse proxy transparent SSL. Bien. Cependant, este semble suggérer que NGINX supporte effectivement SNI, mais je ne trouve pas la moindre trace de documentation utile. En fait, tout ce que j'ai pu trouver impliquait que je devais encore fournir les certificats à NGINX pour qu'il soit capable de faire correspondre le nom d'hôte de la requête. Mais n'est-ce pas exactement le problème que SNI tente de résoudre ?

Je commence à faire tourner un nombre considérable de sites HTTPS différents sur la même adresse IP, ce qui n'est pas sans conséquences lorsqu'il s'agit de maintenir le même élément d'information dans de nombreuses configurations différentes. J'aimerais donc savoir s'il vaut mieux laisser tomber NGINX et apprendre un autre logiciel (alias HAProxy) ou si je peux rester fidèle à NGINX - et comment.

Idéalement, j'aimerais que le proxy fournisse une sorte de tunnel transparent pour le trafic crypté, et que seuls le client et le serveur back-end (disons Apache ou toute autre application que j'exécute) soient en mesure de le décrypter - ce qui signifie que je n'aurai pas à conserver les informations relatives aux certificats dans la configuration du proxy inverse. Ce qui signifie que je peux partir d'ici

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;
    }
}

pour ici

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;
    }
}

avec l'avantage supplémentaire que le conteneur du proxy n'aura pas du tout besoin d'avoir accès aux certificats (étant donné qu'il s'agit d'une configuration Docker, cela représente beaucoup de volumes montés, ce qui entraîne encore plus de maintenance).

0voto

Colt Points 1869

Vous comprenez mal le "manque" de support SNI.

D'abord, nginx est généralement bien pour Configurations SSL "joker" (wildcard) . La question du soutien est dans les clients plus anciens (c'est-à-dire les navigateurs), qui ne sont pas capables de gérer SNI .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X