如果所有流量都被重定向到另一个安全域,我是否需要 SSL 证书?

如果所有流量都被重定向到另一个安全域,我是否需要 SSL 证书?

我目前使用 CNAME 静默地将所有流量引导至http://cdn.domain.com到我的 Rackspace Cloud Files 域http://cxxx.rxx.cxx.rackcdn.com

现在我还想默默地将所有 HTTPS 流量导向https://cdn.domain.comhttps://cxxx.ssl.cxx.rackcdn.com

我认为我无法使用 CNAME 来做到这一点(如果可以的话,那真是太棒了!)所以我将使用 VirtualHosts,如下所示:

<VirtualHost *:80>
    ServerName cdn.domain.com
    RewriteEngine On
    RewriteRule ^(.*)$ http://cxxx.rxx.cxx.rackcdn.com [L,R=301]
</VirtualHost>

<VirtualHost *:443>
    ServerName cdn.domain.com
    RewriteEngine On
    RewriteRule ^(.*)$ https://cxxx.ssl.cxx.rackcdn.com [L,R=301]
</VirtualHost>

我是否需要第二个虚拟主机的 SSL 证书,或者它会从 Rackspace 的 HTTPS 域“借用”它?

答案1

您将需要 一份证书cdn.domain.com

您不能使用 CNAME,因为当浏览器获取cxxx.ssl.cxx.rackcdn.com而不是 的证书时cdn.domain.com,它会抛出一个错误,因为证书与您输入的 URL 不匹配。并且在 apache 中执行重定向时,重定向发生在 SSL 会话建立之后(并且需要证书来建立该 SSL 会话)。


另一个解决方案是在证书中为 提供备用名称cxxx.ssl.cxx.rackcdn.com。基本上,证书将同时包含cxxx.ssl.cxx.rackcdn.comcdn.domain.com。然后您可以使用 CNAME,因为同一个证书对两个主机名 (URL) 都有效。

答案2

您的子域名需要一个,因为该子域名所做的就是重定向访问者。

我很确定你不能用 CNAME 来做到这一点。

另一种方法是将数据从 HTTP 连接重定向到 HTTPS rackcdn 连接,如下所示:

<VirtualHost *:80>
    ServerName cdn.domain.com
    RewriteEngine On
    RewriteRule ^(.*)$ https://cxxx.rxx.cxx.rackcdn.com [L,R=301]
</VirtualHost>

相关内容