一尘不染

如何在Express.js中强制使用SSL / https

node.js

我正在尝试为Express.js创建一个中间件,以将所有非安全(端口80)通信重定向到安全SSL端口(443)。不幸的是,Express.js请求中没有任何信息可让您确定该请求是否来自http或https。

一种解决方案是重定向 每个 请求,但这不是我的选择。

笔记:

  1. 没有可能用Apache或其他东西来处理它。它 必须 在节点中完成。

  2. 应用程序中只能启动 一台 服务器。

您将如何解决?


阅读 230

收藏
2020-07-07

共1个答案

一尘不染

由于我正在使用nginx,因此可以访问标头的x-forwarded-
proto属性,因此我可以编写一个微型中间件来重定向所有流量,如下所述:http : //elias.kg/post/14971446990/force-ssl-
在Heroku-nginx上使用Express-JS

编辑:更新了网址

2020-07-07