为共享 IP 上的所有域提供单域 SSL

为共享 IP 上的所有域提供单域 SSL

我有一个在 Ubuntu Server 12.04 LTS 上运行 Apache/2.2.22 的 VPS。

我已成功为 domaina.com 安装 SSL

不幸的是如果我访问https://domainb.comhttps://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 重写规则,该规则可能仅在浏览器显示其证书警告后才被识别。

相关内容