基于名称的虚拟主机,用于在Ubuntu Apache LAMP服务器上识别不同的SSL虚拟主机?

时间:2011-12-16 15:57:03

标签: ubuntu ssl namespaces ssl-certificate virtualhost

是否无法使用基于名称的虚拟主机来识别不同的SSL虚拟主机?

我正在尝试为我的Ubuntu 10.04服务器上的多个网站实施https:但我遇到了这个资源,它告诉我无法完成:

http://www.linuxpoweruser.com/?p=121

本HowTo中给出的解决方法是建议我有这样的站点结构:

www.abc.com/site1
www.abc.com/site2
www.abc.com/site3

这对我来说不是一个令人满意的解决方法。有人能告诉我这个问题是否有更好的解决方法?

谢谢。

3 个答案:

答案 0 :(得分:0)

如果他们使用相同的证书,您可以使用带SSL的基于名称的主机,因为SSL协商在实际传输Host标头之前发生。

因此,如果您在一个域中拥有不同的主机,例如a.example.comb.example.comc.example.com,那么您可以将它们与{{1}一起使用通配符证书。否则没有解决方法。

答案 1 :(得分:0)

假设您想要在同一个IP地址上运行所有内容,您有多种选择:

  • 使用通配符证书*.example.com。这适用于www1.example.comwww2.example.com,但不适用于www.example1.comwww.example2.com1The wildcard must be in the left-most label。通配符证书使用情况为discouraged
  • 使用具有多个主题备用名称(SAN)的单个证书。然后,您可以为www.example1.com创建一个SAN,为www.example2.com创建另一个SAN(这些名称不需要相关)。
  • 使用多个证书和Server Name Indication (SNI)。缺点是not all clients support it(尤其是Windows XP上的IE,据我所知)。

如果您可以使用多个IP地址,则只需为每个IP地址使用一个证书。

答案 2 :(得分:0)

您可以为您在服务器上托管的每个虚拟主机(适用于每个网站或域或子域)创建SSL证书,您应该考虑的唯一事项是将每个Vhost证书密钥和crt指向这些文件在您的文件系统上的正确位置。如果要为Ubuntu上的每个虚拟主机使用多个带有自定义自签名证书的SSL虚拟主机,可以参考本指南http://www.bytelinux.com/create-self-signed-certificates-enable-apache-ssl-ubuntu-14-10/