使用SSL进行www重定向的mod_rewrite

时间:2013-07-11 03:23:54

标签: redirect mod-rewrite ssl dns cname

目前,访问我们的www网址的用户会收到SSL错误,即“此网站的证书无效”。这是因为我们只有一个证书,它是为非WWW URL配置的:mysite.co

我们要求

的请求
http://www.mysite.co   
https://www.mysite.co

转到

https://mysite.co

反过来是可以接受的,因为我们的动机是通过仅支付一个证书来最小化成本,无论是www还是没有www。我确实读过another post,说SSL协商在服务器的任何响应之前发生(在我们的情况下是重定向),因此访问者在使用不在我们公用名中的域时会收到警告。但是,我修改了DNS以包含CNAME,以便所有www.mysite.co流量重定向到mysite.co,我们仍然在Firefox和Safari中看到错误

我们将Ubuntu与以下 mod_rewrite

一起使用

1)在 / etc / apache2 / sites-available / mysite-ssl

<VirtualHost *:443>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} www.mysite.com  [NC]
        RewriteRule ^(.*)$ https://mysite.com/$1 [R=permanent,L,NC]
        ServerAdmin admin@mysite
        ServerName mysite
        ServerAlias www.mysite

        ... other stuff ... 

</VirtualHost>

2)在 / etc / apache2 / sites-available / mysite

<VirtualHost *:80>
        RewriteEngine on
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>

有趣的是,Chrome在使用WWW.mysite.co(http和https)时说一切都很好

然而,Firefox和Safari都抱怨主机名不匹配(无法验证身份)

1 个答案:

答案 0 :(得分:0)

所以经过更多的阅读和阅读研究,上述规则适用于将流量从 www.site.co 重定向到 site.co

但是,使用一个SSL证书保护两个或更多URL的唯一方法是购买:

  1. 通配符SSL证书,其中包含* .site.co ..这些不需要在购买时定义

  2. 包含一个或多个主题备用名称(SAN)的SSL证书,其中包含www.site.co .. mail.site.co ..等。这些需要在以下时间定义您购买证书,指定每个SAN