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

我目前使用CNAME默默地将http://cdn.domain.com的所有stream量导向http://cxxx.rxx.cxx.rackcdn.com上的Rackspace Cloud Files域。

现在我也想静静地将https://cdn.domain.com的所有HTTPSstream量指向https://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 domian中“借”它?

您将需要cdn.domain.com的证书。

你不能使用CNAME,因为当浏览器获取cxxx.ssl.cxx.rackcdn.com的证书而不是cdn.domain.com ,它会抛出一个错误,因为证书与你放的URL不匹配在Apache中进行redirect时,redirect发生在SSL会话build立之后(并且需要证书来build立SSL会话)。

另一个解决scheme是在cxxx.ssl.cxx.rackcdn.com的证书中提供一个alt名字。 基本上,该证书将包含cxxx.ssl.cxx.rackcdn.comcdn.domain.com 。 您可以使用CNAME,因为相同的证书对于这两个主机名(URL)都是有效的。

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

我很确定你不能用CNAME做这个。

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

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