SSL要求之前重定向到“WWW”(Redirect to 'www' before

2019-06-25 06:53发布

问题

目前,我有哪里出了问题https://domain.com不重定向到https://www.domain.com并表现出不信任的SSL证书。

这到是一个的Ruby-on-轨解决方案相关force_ssl之前重定向到“WWW”

有没有一种方法来重定向到SSL要求踢前的WWW域名?

我使用PHP。

Answer 1:

HTTPS是HTTP通过TLS / SSL(参见RFC 2818 ),该第一建立SSL / TLS连接的任何HTTP通信被发送之前。 任何重定向(通过mod_rewrite建立SSL / TLS连接之后,定制的PHP代码或其它)将始终适用。

不这样做实际上是一个安全问题,因为攻击者可以重写和重定向客户端证书已被验证了。

如果你想从重定向https://domain.comhttps://www.domain.com ,为获得证书https://domain.com必须有效domain.com (然后,对所获得的证书https://www.domain.com必须有效www.domain.com )。

(你可以使用两个不同的证书与这两台主机都服务于同一个IP地址,但是这是颇为曲折的服务器名称指示)。

最简单的将是取得证书这是有效的两种domain.comwww.domain.com 。 这可以通过使用具有多个主题备用名称条目一个证书来完成。 大多数CA应该能够发出这样的证书。 有些人是没有额外费用。



Answer 2:

重定向响应通过HTTP协议发出的。 为了接收这样的响应/命令,客户端首先需要建立HTTP连接。 如果客户端试图建立一个HTTP_S_连接,则SSL协商需要首先完成。

换句话说,没有。 该URL https://domain.com是为您的应用程序无效。 无需客户端甚至应该了解这个特殊的地址,因此不应该试图访问它。 您应该避免在任何地方给了这个URL,这样客户端将不尝试访问它。 事实上,你似乎并不想为域中运行的HTTPS服务器,所以你实际上应该将其关闭,这样客户端将无法连接到domain.com通过HTTPS的。



Answer 3:


我已经找到了最好的解决办法是简单地购买与主题备用名称的一个新的SSL证书,所以你可以有www和非www相同的证书中,并且都是有效的。 这样,您就可以放心地重定向https://开头WWW到https://透明的,没有任何证书错误。



文章来源: Redirect to 'www' before ssl requirement
标签: php redirect ssl