如何在我的网站中实现HSTS

问题描述:

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

任何人都可以帮助我吗?

不确定这是否适合*。然后它再次涵盖了很多主题,因此它在任何其他StackExchange站点中都不太适合。无论如何都会试图回答。

重定向。

你是什么意思“我可以将我的网站重定向到https”?你应该把你的网站重定向到https,现在你已经经历了设置这个问题的麻烦,所以你在做什么?或者你能够访问http和https?如果是这样,即使用户设置了http,也要知道如何强制https。

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

谷歌搜索

关于谷歌搜索,一旦你有重定向设置,这将需要一些时间,谷歌认识到这一点,并更新其搜索索引中的链接以显示页面的HTTPS版本。

说,有办法,你可以告诉谷歌关于这个快点过程:

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

HTTP严格传输安全(HSTS)

这是一个高级的话题所以真的不会推荐它,直到你明白更多。基本上它是一个HTTP头,你通过https发回你的网页,告诉网络浏览器“嘿,我是一个仅限于https的网站,从现在开始,自动将任何http请求转换为https ,然后你将它们发送给我”

这是一个很好的安全除了上的重定向顶部,但关键的是它不会取代需要重定向。 Redirecta需要首先将其发送到https,此时您的Web服务器可以发送HSTS HTTP标头。

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

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

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

请注意,我们将阻止您的网站通过http访问,所以如果您决定关闭https,无论出于何种原因,那么您基本上已经阻止了您的网站达到最大年龄时间任何已缓存该设置的浏览器。

有关HSTS更多信息,请浏览: 301 Redirect and HSTS in .htaccess

但我真的不认为这是你在找什么在这里。它告诉网络浏览器(如Google Chrome)强制使用https,并且与搜索引擎(如Google搜索)无关,因为目前他们忽略此标题。