在我的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 文件中像这样使用基于名称的 vhost 吗:
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 的虚拟主机吗?如果可能的话,我需要什么样的证书才能做到这一点?
答案1
使用 SSL 的基于名称的虚拟主机是可能的,但需要 SNI:http://en.wikipedia.org/wiki/服务器名称指示
答案2
根据你期望访问网站的浏览器,你可以使用信噪比)。否则,您需要使用基于 IP 的虚拟主机。自签名证书可以工作,但通常基本的 SSL 证书(约 100 美元或更少)就足够了。
答案3
如果两个网站都在同一个 IP 地址上,那么最好的选择是使用加州大学证书包括所有四个名称(foo.com、www.foo.com、bar.com、www.bar.com)。这样您就不必担心尚未完全支持的 SNI 或获取多个 IP 地址或获取名称不匹配错误。