Redirect 使用SSL重写www重定向的mod_
目前,用户在访问我们的www URL时遇到SSL错误,即“此网站的证书无效”。这是因为我们只有一个证书,它是为非WWW URL:mysite.co配置的 我们想要任何一个的请求Redirect 使用SSL重写www重定向的mod_,redirect,mod-rewrite,ssl,dns,cname,Redirect,Mod Rewrite,Ssl,Dns,Cname,目前,用户在访问我们的www URL时遇到SSL错误,即“此网站的证书无效”。这是因为我们只有一个证书,它是为非WWW URL:mysite.co配置的 我们想要任何一个的请求 http://www.mysite.co https://www.mysite.co 去 https://mysite.co 相反的情况是可以接受的,因为我们的动机是通过只支付一个证书(www或不使用www)来最小化成本。我确实读过,说SSL协商发生在服务器的任何响应之前(在我们的情况下是重定向),所以访问者在
http://www.mysite.co
https://www.mysite.co
去
https://mysite.co
相反的情况是可以接受的,因为我们的动机是通过只支付一个证书(www或不使用www)来最小化成本。我确实读过,说SSL协商发生在服务器的任何响应之前(在我们的情况下是重定向),所以访问者在使用非我们共同名称的域时会收到警告。但是,我修改了DNS以包含一个CNAME,这样所有的www.mysite.co流量都会重定向到mysite.co,我们仍然可以在Firefox和Safari中看到错误
我们使用Ubuntu进行以下修改
<VirtualHost *:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
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>
重新启动发动机
重写cond%{HTTP_HOST}www.mysite.com[NC]
重写规则^(.*)$https://mysite.com/$1[R=永久,L,NC]
服务器管理员admin@mysite
服务器名mysite
服务器别名www.mysite
... 其他东西。。。
2) 在/etc/apache2/sites available/mysite中
<VirtualHost *:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
重新启动发动机
重写cond%{SERVER\u PORT}^443$
重写规则^/(*)https://%{HTTP_HOST}/$1[NC,R,L]
有趣的是,Chrome在访问WWW.mysite.co(http和https)时表示一切正常
但是Firefox和Safari都抱怨主机名不匹配(无法验证身份)因此,经过更多的阅读和研究,上述规则可以将流量从www.site.co重定向到site.co 但是,使用一个SSL证书保护两个或多个URL的唯一方法是购买:
我会检查您的证书是否有两个主题备选名称条目:有和没有www.thank you Bruno。。。StackExchange上的noob海报,所以现在只看你的评论实际上,通配符证书本身并不一定有效
*.site.co
不包括site.co
(不忽略点)。大多数通配符证书之所以有效,是因为它们有一个SAN for*.site.co
和site.co
作为同一个包的一部分,但通配符与此无关。