如何在我的网站上实施HSTS

时间:2017-08-17 06:22:19

标签: php http curl https hsts

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

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

不确定这是否适用于Stackoverflow。然后它再次涵盖了许多主题,它也不适合任何其他StackExchange站点。所以无论如何都会尝试回答。

<强>重定向。

你是什么意思&#34;我可以将我的网站重定向到https&#34;?您应该将网站重定向到https,现在您已经完成了设置此操作的麻烦,所以您在做什么?或者您是否能够访问http和https?如果是这样,即使用户设置了http,也要了解如何强制使用https。

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

Google搜索

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

说有很多方法可以告诉谷歌这个过程:

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

HTTP严格传输安全(HSTS)

这是一个高级主题,所以在您了解更多之前,我们不会推荐它。基本上它是您通过https发送回网页的HTTP标头,告诉网络浏览器&#34;嘿,我只是一个https网站。从现在开始,自动将任何http请求自动转换为https 之前,您甚至会将它们发送给我&#34;。

重定向之上添加是一个很好的安全性,但至关重要的是不会取代重定向的需要。首先需要将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搜索)无关,因为目前他们忽略了此标题。