在我的 httpd.conf 中:
如果我将虚拟主机配置为:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName foo.com
ServerAlias www.foo.com
Include conf.d/foo.conf
</VirtualHost>
<VirtualHost *:80>
ServerName bar.com
ServerAlias www.bar.com
Include conf.d/bar.conf
</VirtualHost>
我可以使用单域 SSL 证书还是必须购买通配符 SSL 证书来处理 www 子域?
我现在正在尝试配置 ssl.conf 文件,我可以在我的 ssl.conf 文件中使用基于名称的虚拟主机,如下所示:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName foo.com
ServerAlias www.foo.com
...
Include conf.d/foo.conf
</VirtualHost>
<VirtualHost *:443>
ServerName bar.com
ServerAlias www.bar.com
...
Include conf.d/bar.conf
</VirtualHost>
还是我需要基于 IP 的虚拟主机?如果这是可能的,我需要什么样的证书才能做到这一点?
使用 SSL 的基于名称的虚拟主机是可能的,但需要 SNI:http ://en.wikipedia.org/wiki/Server_Name_Indication
根据您希望访问您的站点的浏览器,您可以使用SNI)。否则,您需要使用基于 IP 的虚拟主机。自签名证书可以使用,但通常基本的 SSL 证书(大约 100 美元或更少)就足够了。
如果两个站点都在同一个 IP 地址上,最好的选择是使用包含所有四个名称(foo.com、www.foo.com、bar.com、www.bar.com)的UC 证书。然后您不必担心尚不完全支持的 SNI 或获得多个 IP 地址或出现名称不匹配错误。