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

时间:2016-01-14 16:34:35

标签: express https openshift mean

人们,我已经连续两天绞尽脑汁了,这是我的情况:

  1. 我有一个在openshift上运行的平均堆栈应用程序 - 一切都很好。
  2. 我获得了SSL证书和密钥 - 一切都很好。
  3. 我将证书和密钥上传到openshift,我可以通过https访问我的网站如果我明白地写这些内容(https:// url.com
  4. 我的问题是 - 我想强制用户使用Https,即使他们没有在网址栏中输入Https - 我已经尝试设置路由器,以便将不安全的请求重定向到https -ed网址,但无济于事(所有答案都在SO上找到)......

    非常感谢有人设法做到这一点的任何输入。

2 个答案:

答案 0 :(得分:0)

你可以这样做。只需检查请求环境变量中是否有“http”并手动指向。这是我的python代码示例。

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

答案 1 :(得分:0)

最后,我使用了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 }));

};