当SSL证书是非www时,在https www上将www重写为非www失败

时间:2015-10-07 16:03:50

标签: apache .htaccess ssl-certificate

我试图首先将www重写为非www,用于http和https。 适用于http请求,但对于https请求,浏览器显示'连接不是私有的'当www存在时。

我的SSL证书已分配给非www。我想知道是否有办法将https www重定向到非www?到目前为止,我尝试了不同的例子但没有成功:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

浏览器中显示以下错误消息(https://www.example.com时):

  

您的连接不是私密的

     

此服务器无法证明它是www.example.com;它的安全性   证书来自foobar.com。这可能是由a引起的   错误配置或攻击者拦截您的连接。

到目前为止,我认为除非我拥有www.example.com的SSL证书,否则它是不可能的,否则连接将永远不会发生,服务器也不会发送重定向响应。

1 个答案:

答案 0 :(得分:1)

  

到目前为止,我认为除非我拥有www.foobar.com的SSL证书,否则它是不可能的,否则连接将永远不会发生,服务器也不会发送重定向响应。

完全。

浏览器将尝试建立与服务器的HTTPS连接,但由于显示的证书对域名无效,因此会将其分解。

因此,在这种情况下,您甚至无法重写请求。

如果您希望在用户的浏览器中使用此证书,则需要获得包含域名的www和非www版本的证书。