使用Apache最常见的HTTPS设置,每个站点需要1个IP地址。 Nginx是否具有相同的限制,或者一个IP地址可以提供无限数量的HTTPS站点?
Nginx可以通过SNI重新编译,但是它也需要你的OpenSSL版本来支持它(0.8.9我相信)。 在这里看到更多的信息。
另外值得注意的是,Apache现在支持SNI,它已经被移植到2.2。*。
您可能要面对的问题是浏览器的兼容性。 上面的指南(nginx)指出以下的兼容性,但我没有自己检查过这个:
* Opera 8.0;
* MSIE 7.0 (but only on Windows Vista or higher);
* Firefox 2.0 and other browsers using Mozilla Platform rv:1.8.1;
* Safari 3.2.1 (Windows version supports SNI on Vista or higher);
* and Chrome (Windows version supports SNI on Vista or higher, too).
限制是在SSL级别,而不是服务器级别。 所有的 Web服务器都有这个。
这是原始SSL协议的限制。 在客户端甚至向服务器发送主机名之前立即开始encryption。 如果您的虚拟主机共享相同的连接,则服务器必须猜测显示哪个证书,如果select了错误的证书,则客户端会抛出无效的证书警告。
也就是说,现在已经有一段时间了。 最糟糕的方式是为每个虚拟主机使用不同的端口,所以你有像https://www.example.com:449/这样的网站。 如果所有虚拟主机的forms都是“something”.example.com,则可以使用通配符*.example.com证书。 浏览器已经在证书中支持了主题备用名称多年,但是如果您这样做,则只要您想更改备选名称列表,就必须获得新的证书。
该块上最新的孩子是“SNI”或服务器名称指示 ,它允许支持它的客户端在服务器必须提供证书之前告诉服务器它想要的是哪个主机名。 请注意,IE不支持在Windows XP上。 在服务器端,当一切都编译正确时, Nginx支持它 。 (注意:这个页面也提到上面的其他选项)
是的,它是.. SSL是在IP /端口级别。 服务器与它无关。 你可以使用相同的IP,但是不同的端口,然后默认443,但是你的域名看起来像