![为共享 IP 上的所有域提供单域 SSL](https://linux22.com/image/612203/%E4%B8%BA%E5%85%B1%E4%BA%AB%20IP%20%E4%B8%8A%E7%9A%84%E6%89%80%E6%9C%89%E5%9F%9F%E6%8F%90%E4%BE%9B%E5%8D%95%E5%9F%9F%20SSL%20.png)
我有一个在 Ubuntu Server 12.04 LTS 上运行 Apache/2.2.22 的 VPS。
我已成功为 domaina.com 安装 SSL
不幸的是如果我访问https://domainb.com,https://domainc.com等等...由于每个域名都提供 domaina.com 证书,因此我收到了证书警告。
我怎样才能阻止这种情况?
我可以阻止 Apache 向所有共享同一 IP 的站点发送证书吗?我可以使用 ufw 阻止某个域名的端口 :443 访问吗?还有其他吗?
域 A 配置
<VirtualHost *:80>
ServerName domaina.com
ServerAlias www.domaina.com
DocumentRoot /var/www/domaina.com/public
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName domaina.com
ServerAlias www.domaina.com
DocumentRoot /var/www/domaina.com/public
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/domaina.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/domaina.key
SSLCertificateChainFile /etc/apache2/ssl/domaina.com.ca-bundle
</VirtualHost>
</IfModule>
域 B、C…配置
<VirtualHost *:80>
ServerName domainb.com
ServerAlias www.domainb.com
DocumentRoot /var/www/domainb.com/public
</VirtualHost>
遇到的错误
使用 Mac OS X Mountain Lion、最新版本的 Chrome、Safari、Firefox 进行浏览。
Chrome — 这可能不是您要找的网站!您尝试访问 www.domainb.com,但实际上您访问的服务器却自称是 www.domaina.com。
Firefox — 此连接不受信任。您已要求 Firefox 安全地连接到 www.domainb.com,但我们无法确认您的连接是否安全。
Safari — Safari 无法验证网站“www.domainb.com”的身份。
答案1
这是预期行为。您在这里有几个选项 - 您可以在 SSL 证书中使用主题备用名称并为其他域提供名称,您可以为其他域获取新 IP,或者您可以强制其他域为非 SSL。最后一种可能效果不佳,因为您最终可能会使用 Apache 重写规则,该规则可能仅在浏览器显示其证书警告后才被识别。