是否可以在4台虚拟机上只使用1个SSL证书?

首先,我没有处理服务器。 我的雇主是日本人,但我的经理可以说英语,他希望我们研究他们想要的设置的可能性。

所以他解释说,他们有一台机器连接到互联网。 在那台机器上有四台虚拟机(Windows 2008服务器)。 他们想知道主机上托pipe的SSL证书是否可以被四台虚拟机使用。 我不知道他们是如何设想的,但据我所知,每个虚拟机应该有一个单独的SSL证书。

我只想知道是否有可能,或者是否有像这样的设置(4机器1 SSL)的解决scheme,可以工作。

如果您有一台额外的机器负责终止SSL连接,并将来自这四台机器的stream量代理到互联网,那么这是可能的。 现在请注意,代理和虚拟机之间的stream量不会被encryption。 这被称为SSL终止代理。

我认为您需要更好地了解SSL的用途以及工作原理。

SSL实现了几个安全function,其中这些function对您来说很重要:

  • 传输中的数据encryption。
  • 连接的一端或两端的身份validation。

(还有其他的function,比如压缩或者安全密钥协商,但是你并不关心这些)。

会给你带来麻烦的部分是第二个:authentication。 更具体地说,authentication的服务器端(换句话说,客户端如何certificate他正在与“正确的”服务器交谈)。

为此,SSL依赖于两件事情: X509证书和DNS系统。 它通过以下步骤完成:

  1. 它使用用户或应用程序提供的主机名(例如www.mysecureservice.com)通过客户端的DNSparsing来获取IP地址。
  2. 它打开到该服务器的TCP连接,并请求远程机器的X509证书(实际上,通常有多个证书提供,但为了简单起见,我们假设只有一个)。
  3. 它validation证书的真实性。 为此,它使用自己的内部规则(因为现在不是太重要,而且相当复杂,我不会详细说明)。
  4. 它validation从服务器收到的X509证书中的名称与在步骤1中用于查找IP地址的主机名相同。

如果主机名称不匹配,SSL连接将不会被validation。 根据正在使用连接的软件,它可以触发一个简单的安全警告或完全失败的连接。

您应该注意的另一个机制是build立一个SSL连接在CPU和带宽上是昂贵的,所以SSL连接通常保持相当长的时间。 此外,客户端和服务器之间存在“强大的绑定”,这使得客户端在build立SSL连接之后(几乎)不可能更改服务器,而不会完全中断服务器并从头开始重新启动。 这对于有状态协议来说并不是一个问题,因为无论如何,服务器上必须维护更多的状态元素,而对于无状态协议(如HTTP)则意味着build立SSL连接可能会破坏负载平衡。

现在,直接回答你的问题。

首先,你不能在主机和客户OS之间“共享”一个X509证书,因为证书是直接在机器上“安装”的。 但是,技术上可以做的是以下任何一项:

  • 在所有虚拟机上安装相同的证书(使用相同的主机名),然后使用DNS轮询或任何其他types的networking负载平衡将用户redirect到另一个虚拟机。 当然,这是假设所有虚拟机都是可以互换的。
  • 在主机(不推荐),另一台虚拟机或主机前面的其他设备上安装反向代理服务器(最佳解决scheme)。 该反向代理将接收SSL连接,根据您设置的任何规则对其进行解密并将代理查询到其中一个虚拟机。 但是,如果你想通过SSL连接提供的内容是HTTP内容,并且也需要后端系统与这个scheme兼容,那么(几乎)只会起作用。
  • 在主机上(不推荐)设置所谓的“SSL VPN”,另一个客户虚拟机或者整个设备前面的某个设备。 这种设置比较复杂,因为这一切都取决于你想在SSL连接中封装什么协议,以及你期待的使用场景。

如果这个解释不够充分,请问您能否透过SSL封装明确说明您要保护的内容?

你的问题有点含糊,因为你没有指定你想要达到的目标。

如果您正在讨论HTTP,那么在负载均衡的设置中,每个服务器使用相同的主机名(通过负载平衡器)都是可能的。 这很常见,并且在每台服务器上安装相同的证书(请记住,不能为每台服务器重新颁发证书!)。 但是,我并没有真正看到这方面的收益,为什么要在同一台物理机器上虚拟化4台机器,然后对它们上的stream量进行负载平衡?

第二种select是使用特殊的SSL证书,这是一个“通配符”证书,将被发布到*。yourdomain.com,这将被视为对您的域的任何子主机有效。 它花费更多,偏执的人可能不认为它是值得信赖的“固定”SSL证书。 我个人使用这个内部服务,我不在乎,我只是想摆脱警告。

这可能会对您有所帮助: 您是否可以跨平台重新使用SSL证书?

请记住,不同的SSL证书有不同的许可模式。 有些是“每服务器”,有些是“每域”或“无限服务器”。 阅读细则。