Apache SSL多域

时间:2010-09-30 09:40:33

标签: apache ssl

我们有一个网络应用程序,可以为不同域下的客户托管多个网站。所有这些域都托管在一个apache vhost上,不同站点的逻辑分离由软件完成。

我们希望为其中一些虚拟网站提供ssl支持。原则上应该没问题,因为在建立ssl连接后,软件可以使用host:header来路由到正确的网站。

但是:我如何告诉apache提供正确的证书,具体取决于所请求的主机?

是否有可能将证书映射到域,例如有类似的东西:

SSLCertificateFile文件

感谢所有帮助!

3 个答案:

答案 0 :(得分:4)

除了@bobince所说的,您可以在主题备用名称扩展名中使用多个DNS条目在同一证书中使用多个主机名(不一定使用通配符或子域)。 (CA可能会对此类证书收取更高的费用。)

答案 1 :(得分:3)

这是不可能的。由于主机头仅在建立SSL连接后发送,因此服务器无法提供SSL证书,具体取决于主机。

Server Name Indication尝试解决此问题,但未在所有浏览器上实施。

答案 2 :(得分:3)

您需要为每个SSL域使用单独的IP地址。您可以在具有IP:端口组合的VirtualHost上将SSLCertificateFile设置为自己。

HTTPS的限制是您选择一个证书以确保连接在客户端传递Host:请求标头之前发生(必须,因为标头也是加密的) 。因此,每个IP地址不能有多个主机名(通配符证书除外,并且只提供子域名)。

称为SNI的SSL扩展可解决此问题,但浏览器支持目前还不足以考虑公开部署。