我在虚拟化方面是全新的,但我想知道这是否可能。
我知道在一个主机上使用多个SSL不是简单的可能(需要通配符SSL或一些奇怪的操作,显然不能在每个浏览器上)。
所以,我正在考虑创build多个虚拟化服务器,每个虚拟化服务器都有一个apache或nginx服务器的实例,具有不同的SSL证书。
但是这可能吗?
要清楚,这是一个架构:
Host A (ip: 1.2.3.4) Virtual server 1 with NGinx For: https://www.example.com (with SSL for www.example.com) For: http://www.exp.com Virtual server 2 with NGinx For: https://www.anotherexample.com (with SSL for www.anotherexample.com) For: http://www.anoexp.com For: http://www.anoexp2.com Etc
在我看来,从我所了解到的情况来看,SSL证书在发送主机名到服务器之前就开始了,所以服务器(虚拟或不是)不知道在哪里解决请求,这样做,不知道哪个证书使用。
为了尽可能简洁,我想在我的唯一一台服务器上使用两个不同的https网站,我希望能够使用虚拟化,但是我不知道任何有关技术的知识。
对不起,如果我不是很清楚,对我来说也有点混乱。
谢谢你的帮助,我很感激!
我想你对几件事情有点误解。
1)最广泛支持的SSL实现需要每个IP 1个证书,而不是每个主机。 您可以拥有一台具有多个IP的服务器,并在每个IP上托pipe不同的站点,并为每个IP分配不同的SSL证书。
2)在虚拟环境中,每个虚拟机都有不同的IP和主机名,在大多数情况下它们不会与主机共享一个IP。
#2所做的一切正在走向#1。 如果你不需要#2提供的逻辑分隔,你应该坚持#1。
是的,这是可能的,没有虚拟化。 您不限于每个服务器的单个SSL站点。 使用传统技术,每个IP地址仅限于一个SSL站点(一个证书,可能包含多个站点…)。
SNI正在改变这种情况,通过在协商SSL或TLS之前发送主机头来允许多个证书。 目前还没有被广泛采用,你真的不能依靠John Public拥有必要的技术(虽然对于内部使用你可能能够控制足够的环境使其工作可靠)。
似乎应该为每个HTTPS服务器分配一个单独的IP地址,或者仅使用具有多个名称的SSL证书
检查这个文件: http : //nginx.org/en/docs/http/configuring_https_servers.html