NGINX是否支持SNI或者不支持?

编辑新的问题: NGINX可以检查TLS请求寻找SNI像HAProxy(等)吗?

根据我所读到的(据我所知),NGINX不应该支持SNI,我应该为HAProxyselectSSL透明的反向代理。 精细。 但是, 这似乎表明NGINX实际上支持SNI,但我无法find一个有用的文件。 也就是说,我能够find的所有东西都意味着我仍然必须向NGINX提供证书,以便能够匹配请求的主机名。 但是,这不就是SNI试图解决的问题吗?

现在,我开始在相同的IP地址上运行大量不同的HTTPS站点,因为在许多不同的configuration中维护相同的信息时,会花费很多代价,所以我想知道我是否更好开槽NGINX,并学习另一个软件(又名HAProxy),或者如果我真的可以坚持NGINX – 以及如何。

理想情况下,我希望代理为encryptionstream量提供一种透明的隧道,只有客户端和后端服务器(比如Apache或者其他正在运行的应用程序)应该能够解密它 – 这意味着我不必将证书信息保留在反向代理的configuration中。 这意味着我可以从这里走

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

到这里

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

还有额外的好处,即代理的容器根本不必访问证书(看到这是一个Docker设置,这是一个非常多的卷装入,导致更多的维护)。

你误解了SNI支持的“缺乏”。

首先, nginx通常适用于“通配符”SSL设置 。 支持问题是在较旧的客户端(即浏览器),这是不能处理SNI 。