首先,我没有处理服务器。 我的雇主是日本人,但我的经理可以说英语,他希望我们研究他们想要的设置的可能性。
所以他解释说,他们有一台机器连接到互联网。 在那台机器上有四台虚拟机(Windows 2008服务器)。 他们想知道主机上托pipe的SSL证书是否可以被四台虚拟机使用。 我不知道他们是如何设想的,但据我所知,每个虚拟机应该有一个单独的SSL证书。
我只想知道是否有可能,或者是否有像这样的设置(4机器1 SSL)的解决scheme,可以工作。
如果您有一台额外的机器负责终止SSL连接,并将来自这四台机器的stream量代理到互联网,那么这是可能的。 现在请注意,代理和虚拟机之间的stream量不会被encryption。 这被称为SSL终止代理。
我认为您需要更好地了解SSL的用途以及工作原理。
SSL实现了几个安全function,其中这些function对您来说很重要:
(还有其他的function,比如压缩或者安全密钥协商,但是你并不关心这些)。
会给你带来麻烦的部分是第二个:authentication。 更具体地说,authentication的服务器端(换句话说,客户端如何certificate他正在与“正确的”服务器交谈)。
为此,SSL依赖于两件事情: X509证书和DNS系统。 它通过以下步骤完成:
如果主机名称不匹配,SSL连接将不会被validation。 根据正在使用连接的软件,它可以触发一个简单的安全警告或完全失败的连接。
您应该注意的另一个机制是build立一个SSL连接在CPU和带宽上是昂贵的,所以SSL连接通常保持相当长的时间。 此外,客户端和服务器之间存在“强大的绑定”,这使得客户端在build立SSL连接之后(几乎)不可能更改服务器,而不会完全中断服务器并从头开始重新启动。 这对于有状态协议来说并不是一个问题,因为无论如何,服务器上必须维护更多的状态元素,而对于无状态协议(如HTTP)则意味着build立SSL连接可能会破坏负载平衡。
现在,直接回答你的问题。
首先,你不能在主机和客户OS之间“共享”一个X509证书,因为证书是直接在机器上“安装”的。 但是,技术上可以做的是以下任何一项:
如果这个解释不够充分,请问您能否透过SSL封装明确说明您要保护的内容?
你的问题有点含糊,因为你没有指定你想要达到的目标。
如果您正在讨论HTTP,那么在负载均衡的设置中,每个服务器使用相同的主机名(通过负载平衡器)都是可能的。 这很常见,并且在每台服务器上安装相同的证书(请记住,不能为每台服务器重新颁发证书!)。 但是,我并没有真正看到这方面的收益,为什么要在同一台物理机器上虚拟化4台机器,然后对它们上的stream量进行负载平衡?
第二种select是使用特殊的SSL证书,这是一个“通配符”证书,将被发布到*。yourdomain.com,这将被视为对您的域的任何子主机有效。 它花费更多,偏执的人可能不认为它是值得信赖的“固定”SSL证书。 我个人使用这个内部服务,我不在乎,我只是想摆脱警告。
这可能会对您有所帮助: 您是否可以跨平台重新使用SSL证书?
请记住,不同的SSL证书有不同的许可模式。 有些是“每服务器”,有些是“每域”或“无限服务器”。 阅读细则。