2

我有一个网站(来自 godaddy 的域并托管在 hostgator 中)。当我手动更新证书时,我可以将我的网站重定向到 https,但它总是从谷歌搜索转到 http。在线搜索后,我知道考虑Strict-Transport-Security: max-age=15768000作为curl -i -L目标域的结果将满足我的需要,因为它将强制浏览器以 https 打开网站。但我对如何在我的网站上实现这一点感到困惑。

谁可以帮我这个事 ?

4

1 回答 1

7

不确定这是否适合 Stack Overflow。再说一次,它涵盖了太多的主题,以至于它也不适合任何其他 Stack Exchange 站点。所以无论如何都会尝试回答。

重定向。

您是什么意思“我可以将我的网站重定向到 https”?现在您已经完成了设置的麻烦,您应该将您的网站重定向到 https,您这样做了吗?或者您可以同时访问 http 和 https 吗?如果是这样,即使用户设置了 http,也要了解如何强制使用 https。

这是在您的 Web 服务器上使用重定向规则设置的。不确定您是否可以直接访问您的配置(例如,如果使用 Apache,则为 .htaccess 文件)或要求您的主机提供商为您进行设置。

谷歌搜索

关于 Google 搜索,一旦您设置了重定向,Google 将需要一些时间来识别这一点并更新其搜索索引中的链接以显示页面的 https 版本。

说有一些方法可以告诉 Google 以加快进程:

  • 您是否强制重定向到 https?如果不是,Google 将根据多种因素决定显示哪个网站(http 或 https)。
  • 您是否有站点地图并且是否已将这些链接更新为 https?
  • 您是否rel="canonical"在任何页面的 HTML 中有设置,是否设置为 https 版本?例如,如果您允许页面的 http 和 https 版本(不推荐),这会告诉 Google 哪个是页面的真实版本。
  • 您是否在 Google Search Console 中注册了您网站的 https 版本?如果是这样,那里有任何错误吗?您还可以在此处启动重新索引请求。
  • 您是否将所有内部链接设置为 https 或者更好的是相对链接。
  • 您可以将任何外部链接更新为 https 而不是 http。

HTTP 严格传输安全 (HSTS)

这是一个高级主题,因此在您了解更多之前,真的不会推荐它。基本上,它是一个 HTTP 标头,您通过 https 与您的网页一起发回,以告诉网络浏览器“嘿,我是一个仅限 https 的网站。从现在开始,在您将任何 http 请求发送给我之前自动将它们自动转换为 https”。

它是重定向之上的一个很好的安全补充,但至关重要的是它并不能取代对重定向的需求。重定向需要先到位才能将其发送到 https,此时您的 Web 服务器可以发送 HSTS HTTP 标头(浏览器将缓存该标头,以便下次知道更改为 HTTPS)。

要设置它,您需要发送一个这样的 HTTP 标头(但只能通过 https 请求)。

Strict-Transport-Security "max-age=16070400"

这可以在您的网络服务器中设置,或者在您的 php 文件中或您可以发送 HTTP 标头的任何其他方式中设置。

请注意,这将阻止您的网站通过 http 访问,因此,如果您出于任何原因决定关闭 https,那么您基本上已经阻止了您的网站,直到任何具有缓存该设置。

有关 HSTS 的更多信息,请参见此处: .htaccess 中的 301 重定向和 HSTS

但我真的不认为这就是你在这里寻找的东西。它告诉网络浏览器(如谷歌浏览器)强制使用 https,与搜索引擎(如谷歌搜索)无关,因为目前它们忽略了这个 Header。

于 2017-08-17T22:25:02.987 回答