openshift 上的 MEAN 堆栈应用程序 - 强制 Https 连接

MEAN stack app on openshift - force Https connection

亲们,我这两天绞尽脑汁,这是我的情况:

  1. 我在 openshift 上有一个平均堆栈应用程序 运行 - 一切都很好。
  2. 我获得了 SSL 证书和密钥 - 一切正常。
  3. 我将证书和密钥上传到 openshift,如果我明确写入,我可以通过 https 访问我的网站 (https://url.com)

我的问题是 - 我想强制用户使用 Https,即使他们没有在 url 栏中输入它 - 我已经尝试设置路由器,以便它重定向不安全的请求到 https-ed urls,但无济于事(所有答案都在这里找到)...

非常感谢设法做到这一点的人提供的任何意见。

你可以这样做。只需检查 "http" 是否在您的请求环境变量中并手动直接。这是我的 python 示例代码。

if request.environ['HTTP_X_FORWARDED_PROTO'] == 'http':
Then redirect

最后我只好安装express-sslify.

后来,我的版本是这样实现的,因为Openshift提供了一个web负载均衡器,当你想重定向不安全的请求时,这是一种特殊情况(如指定express-sslify!)

的文档

希望这个答案对其他人也有帮助 - 解决方案代码如下:

var enforce = require('express-sslify');

if (config.env === 'production' && config.isStaging === 'false') {

    // Enforce HTTPs connections only
    app.use(enforce.HTTPS({ trustProtoHeader: true }));

};