0

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

我们想要任何一个请求

http://www.mysite.co   
https://www.mysite.co

要去

https://mysite.co

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

我们使用带有以下mod_rewrite的 Ubuntu

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 都抱怨主机名不匹配(无法验证身份)

4

1 回答 1

0

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

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

  1. 通配符 SSL 证书,涵盖 *.site.co .. 这些不需要在购买时定义

  2. 具有一个或多个主题备用名称 (SAN)的 SSL 证书,涵盖 www.site.co .. mail.site.co .. 等。这些需要在您购买证书时定义,指定每个 SAN

于 2013-07-14T02:46:41.143 回答