代码之家  ›  专栏  ›  技术社区  ›  Jack Roscoe

启用HST后,是否可以从非安全连接重定向到安全连接?

  •  0
  • Jack Roscoe  · 技术社区  · 7 年前

    我最近开始在我的一个网站上提供“严格的交通安全”标题。我没有预料到的一个问题是,我的SSL证书只覆盖我的域。如果用户访问www.mydomain。com,而不是被重定向(以前会发生),他们看到了一个安全错误,由他们的浏览器提出的事实是,新的头是不允许所有非https通信。

    我理解为什么这是预期的行为,但是我想知道,尽管www在www域上没有有效的证书,但我是否可以将www重定向到非www?

    如果有什么不同的话,我的服务器正在运行Ubuntu。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Barry Pollard    7 年前

    如评论中所述,如果您的HSTS标头中包含子域,那么这将给您带来问题,因为具有此标头的浏览器将尝试访问 https://my.yourdomain.com (即通过HTTPS),这将产生证书错误。

    老实说,最佳做法是将mydomain和mydomain都包括在内。com和www.domain。com,如果有任何证书,大多数CA将以相同的价格包括这两个域。这不适用于多域或通配符证书,但仍然是最佳做法,因此应尽可能做到这一点。

    当然,您可以删除HSTS头的includeSubDomains部分,正如注释中所建议的那样,这将解决这个问题(一旦maxage time给出了任何缓存响应,这看起来距离您的示例只有一年),但是这里还有其他风险。例如,有人可以设置wwww.mydomain。com(带有4个w)或secure.mydomain。com或任何其他看起来合法的子域,并通过http而不是https提供服务,访问者可能不会注意到。此外,子域可以使用路径属性访问或设置其所属域的Cookie。这些都是边缘情况,即使没有includeSubDomains,HST仍能提供大量保护,因此即使没有includeSubDomains,也最好包括这一点,但如果要努力打开HST,那么最好能够完全打开它。