Answers:
您的共享主机提供商提供给您的信息确实准确。
基于SSL的流量必须绑定到单个IP地址,以便可以建立初始SSL握手和加密连接。在向Web服务器提供所请求的URI之前,所有这些都已完成。因此,每个IP地址只能绑定一个证书。虽然您可以将不受限制的域绑定到单个IP地址,但该域排除了SSL证书的安装。
许多共享提供程序将允许您在某些共享托管计划上支付额外的IP地址,以允许使用SSL证书。您可能会发现您的提供商确实提供了此服务,但是它可能仅在其他计划中可用,因为这将被视为更高级的服务,因此可能无法在更简单的托管计划中使用。
编辑:这个问题来自2009年,当时答案(如下)是正确的。如果人们现在遇到了这些信息,则或多或少无关紧要:
问题是关于SSL的,您所说的关于SSL的限制过去是而且仍然是正确的。但是,现在每个人都在使用TLS,并且服务器名称指示(SNI)广泛可用,正好解决了这个问题。当然,您仍然可以继续使用通配符证书,但是也可以为每个TLS主机使用单独的证书。
这对原始2009年问题的解决无济于事,但在2015年编辑时确实将答案更新为更相关
2009年的原始答案:
关于每个IP 1个https端点的信息是正确的。该协议使得加密在客户端和服务器协商URL之前开始,这对于VirtualHosts启用SSL是必需的。密钥/证书将取决于在一个IP上设置多个证书的url(即主机名),但是在服务器知道要联系哪个URL之前就已使用它。
我了解该协议正在开发中,但是目前没有解决此问题的方法-至少通常无法使用。
更新:如果您自己仅获得1个IP,则可以使用通配符证书。基本上,它们不是通过www.example.com而是通过* .example.com来标识身份,因此您可以让多个主机共享同一IP,而不会在浏览器中生成任何警告。
如果使用Apache 2.2.12实现SNI,则不再需要这种情况,每个证书不再需要单个地址。希望我们现在能看到更多可用于共享主机的信息。
https://www.digicert.com/ssl-support/apache-multiple-ssl-certificates-using-sni.htm
如果您找到一个共享的主机,该主机将为您提供多个IP,则可以获取多个证书,但就我所知,除非共享,否则您实际上不能在同一IP地址上拥有多个证书。
如果您想要更具成本效益的东西(并且您不怕自己做一些配置工作),则可以看看机架云(以前是Mosso,类似于EC2,只是便宜一点...您可以理论上以每月15美元左右的价格运行开发服务器):http: //www.rackspacecloud.com
[更新]尚无足够的代表发表评论,但如下所述,您可以从技术上获得通配符证书,该证书对域的所有子域均有效(* .example.com,其中包括www.example.com)。但是,这不适用于多个域,出于Olaf的解释,您仍然需要多个IP地址。
现在,这并不是一个很有用的答案,但是在将来,您应该能够使用Server Name Indication,它使用TLS协议中的扩展名来发送服务器名称,作为TLS握手的一部分。在RFC3546中指定。不幸的是,它的支持不是很好。OpenSSL直到5个月前发布的0.9.8j才默认启用它。Windows XP上的IE不支持它,但Vista上却支持。IIS根本不支持它。在XP上的所有用户消失并且托管提供商升级其服务器之前,您无能为力。
您的主机是否不允许您拥有专用IP。您应该能够找到一个主机,该主机允许您购买具有共享主机但专用IP的计划。我们现在使用Server Intellect www.serverintellect.com为例。基本上,他们只是为我们需要的每个专用IP向我们收取少量费用。
我已经使用IP别名在单个但专用的主机上成功部署了多个SSL证书。我无法回答在共享托管计划中如何或应该使用它。我发现IBM Developerworks上的这篇文章非常有用。