HTTP到HTTPS:快递与Heroku

7kqas0il  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(145)

Heroku建议使用NPM包来处理快速应用的强制SSL。我已经尝试了十几次,但都没有成功。我唯一能做的就是如下所示,但后来谷歌疯了。

问题:谁能告诉我截至2022年在Express应用上强制使用HTTPS的工作方法?

<script>
//This works but Google Console gets angry: Page indexing issues: Page with redirect

var host = "www.URL.com" || "URL.com";
if ((host == window.location.host) && (window.location.protocol != "https:")){
window.location.protocol = "https";
}
</script>
3okqufwl

3okqufwl1#

如果您设定Strict-Transport-Security信头,浏览器会在第一次透过HTTPS存取网站 * 之后,记住这是一个仅限HTTPS的网站 *。然后浏览器会以https://your.server的要求取代http://your.server的每一个后续要求,因此它永远不会再透过HTTP存取您的网站。
为了确保第一次通过HTTPS访问,添加一个从HTTP到HTTPS的永久重定向(我不认为这个重定向会让Google感到不安,例如,github.com也是这样做的)。
下面的代码假设Heroku为您在HTTP和HTTPS上运行应用程序。

app.use(function(req, res, next) {
  if (!(req.client instanceof tls.TLSSocket))
    return res.redirect(301, "https://your.server");
  res.set("Strict-Transport-Security", "max-age=86400");
  next();
});

相关问题