使用 Nginx 和 SNI

jus*_*gIT 10 ssl nginx sni

到目前为止,我还没有将 SNI 与 nginx 一起使用。但是由于 IP 地址池已被填满并且商业 XP 支持即将停止(最终)我正在考虑将一些站点转换为 SNI。

我知道 SNI 可能带来的一般限制和陷阱(XP 问题,非常旧的浏览器)。但除此之外还有什么我应该注意的吗?

像 - 使用 SNI 时与 nginx 相关的陷阱 - 最近(值得注意!)浏览器的问题/错误

小智 12

实际上,这不是您应该担心的客户端软件。现在大多数人都运行一个不错的浏览器,移动设备基本上是安全的。

当我们尝试使用 SNI 运行 nginx 时,我们发现一些服务提供商真的落后了。在一种情况下,某个在线支付提供商只会放弃对我们的 HTTP 调用,因为他们的软件基于非常旧的(支持 SNI 之前的)Perl 库。用户看到他们的信用卡被收费而没有结果,并没有被逗乐。供应商的反应令人惊讶 - 他们不知道他们有这个问题。可悲的是,他们说他们需要几个月的时间来解决这个问题。

我希望这只是一个提供者,但不是。我们最终回到了每个域的单独 IP。

经验教训:检查所有将与您的 nginx 通信的软件。


Mic*_*ton 10

如果您的 nginx 版本在您这样做时显示 TLS SNI 支持,nginx -V那么您就可以开始了。

如果你想在server不考虑 IP 地址的情况下运行你的,那么不要在 SSL webserverlisten指令中使用IP 地址来为该虚拟主机使用 SNI。

例如,更改:

listen 198.51.100.206:443 ssl;
Run Code Online (Sandbox Code Playgroud)

到:

listen 443 ssl;
Run Code Online (Sandbox Code Playgroud)

即使您确实使用了 IP 地址,对于在同一 IP 地址上的所有servers,无论如何都会使用 SNI listen