Ale*_*lex 5 ssl https seo redirect hsts
让我在这里解释一下现实世界的情况.
我运行网站https://www.liloo.ro,我想为它启用HSTS(+ HSTS预加载).
问题是,为了将其提交到预加载列表,主域必须使用HSTS头进行响应.
让我更准确一点:为了将站点提交到预加载列表并满足要求,首先必须重定向到主域的https版本.
在我的情况下,我不能直接从http重定向到https + www - >我必须首先从http重定向到https(在这里提供主域名HSTS标题)并再次重定向到https + www
这构成了一个巨大的重定向稀释SEO问题(更不用说链式重定向不理想的事实).
所以每一种方式我都要看这个,我要么放弃HSTS预加载列表,要么使用链式重定向.这两种选择看起来都不理想
唯一可能的解决方法可能是预装列表要求,但我不太明白这意味着什么:
如果您正在提供重定向,则该重定向必须具有HSTS标头,而不是其重定向到的页面.
据我所知,在进行重定向时没有办法像HSTS头那样服务......但也许我错了.任何想法如何解决这个问题?...或者我应该完全放弃HSTS预载列表,因为我的网站只是www?
我不能在这一点上从www切换到非www ...我知道这将是"简单"的解决方案.
任何想法 - 非常感谢.我注意到这个线程 在重定向到web.config中的www子域期间在域根上添加HSTS http头 ...但我怀疑它解决了这个问题(+我正在使用nginx)
我真的很感谢你发布了这篇文章,因为我有完全相同的问题,即直接http://DOMAIN重定向到,结合重定向到 HTTPS和重定向到 子域。https://www.DOMAINwww
我知道这将是“简单”的解决方案。
请注意,使用像 之类的子域是有原因www的,正如已经多次讨论过的那样,因此这种选择是完全可以理解的。
然而,HSTS 没有办法(至少目前还没有)将这两个重定向结合起来:它只能直接转发到 HTTPS。我想,如果 HSTS 预加载站点检测到这不是普通HTTP 服务器本身所做的事情,那么强制执行“307 内部重定向”到 HTTPS 是不可接受的。(据我所知,hstspreload.org上没有明确说明这一要求,但只能通过实际尝试设置 HSTS 预加载来找到。)
我没有完整回答你的问题,但我可以就你提出的几点提供更多信息:
如果您提供重定向,则该重定向必须具有 HSTS 标头,而不是其重定向到的页面。
请注意hstspreload.org的准确(当前)引用:
如果您从HTTPS 站点提供额外的重定向,则该重定向仍必须具有 HSTS 标头(而不是其重定向到的页面)。
这与以下几点相关:
据我所知,在进行重定向时没有办法提供 HSTS 标头之类的服务......
HTTP 重定向响应完全有可能也有 HSTS 标头。这仅意味着 HTTP 重定向响应还包含Strict-Transport-Security带有合适参数的标头字段。例如,使用 SWI-Prolog 作为 HTTP 服务器,您可以发出如下响应:
- http_status_reply(moved('https://stackoverflow.com'), current_output,
[strict_transport_security('max-age=63072000; includeSubdomains')] , 代码)。
产量:
HTTP/1.1 301 永久移动 日期:2017 年 2 月 12 日星期日 10:04:55 GMT 地点:https://stackoverflow.com 严格传输安全:max-age=63072000;包含子域 内容长度:366 内容类型:text/html;字符集=UTF-8 ETC。
请注意,此标头字段仅在已使用TLS 时才允许(否则,攻击者可能会通过未经身份验证的连接强制流量流向不同的端口!)。事实上,标头不能出现在 HTTP→HTTPS 重定向中,因为它使用未经身份验证的连接,并且如果它(错误地)确实出现在纯 HTTP 上,则客户端必须忽略它。
现在到你问题的实际要点:
这带来了巨大的重定向稀释SEO 问题(更不用说链式重定向并不理想)。
我完全同意链式重定向远非理想,而且对于我们这样的(常见的!)设置似乎没有办法解决这个问题,至少目前没有。
然而,我个人希望附加重定向不会对您网站的排名产生太大影响:理论上,一旦搜索引擎发现您的网站位于 HSTS 预加载列表中,它应该关心的只是它的 HTTPS 版本(因为这也是支持 HSTS 预加载的浏览器会做的事情!)。因此,您最终只会得到一个重定向,即https://DOMAIN→https://www.DOMAIN重定向,这应该与您当前的情况相当。至少这是我有点天真的希望。在此重定向中,请确保包含 HSTS 标头,因为这是进入预加载列表的要求。当然,确切的配置细节取决于您的具体 Web 服务器。
另请注意,即使将原始重定向链添加到 HSTS 预加载列表中,也无法恢复原始重定向链。这是因为继续要求部分指出:
您必须确保您的网站始终满足提交要求。