到目前为止,我还没有将 SNI 与 nginx 结合使用。但由于 IP 地址池已满,并且商业 XP 支持即将停止(最终),我正在考虑将一些网站转换为 SNI。
我知道 SNI 可能带来的一般限制和缺陷(XP 问题、非常老旧的浏览器)。但除此之外,我还应该注意什么?
例如 - 使用 SNI 时与 nginx 相关的陷阱 - 近期(值得注意的!)浏览器的问题/错误
答案1
如果您的 nginx 版本显示 TLS SNI 支持,那么nginx -V
您就可以开始了。
如果您想在server
不考虑 IP 地址的情况下运行,那么请不要在 SSL Web 指令中使用 IP 地址server
来listen
为该虚拟主机使用 SNI。
例如,更改:
listen 198.51.100.206:443 ssl;
到:
listen 443 ssl;
即使您确实使用了 IP 地址,对于位于同一 IP 地址上的所有server
s ,仍然会使用 SNI。listen
答案2
其实你不必担心客户端软件。如今大多数人都使用可靠的浏览器,移动设备基本上是安全的。
当我们尝试使用 SNI 运行 nginx 时,我们发现一些服务提供商确实落后了。在一个案例中,某个在线支付提供商会直接丢弃对我们的 HTTP 调用,因为他们的软件基于一个非常老旧的(不支持 SNI 之前)Perl 库。用户看到他们的信用卡被扣款却没有结果,他们很不高兴。提供商的回应令人吃惊 - 他们不知道他们有这个问题。遗憾的是,他们说他们需要几个月的时间来解决这个问题。
我希望这只是一个提供商,但事实并非如此。我们最终还是回到了为每个域名设置单独的 IP。
经验教训:检查所有与你的 nginx 通信的软件。