openshift 上的 MEAN 堆栈应用程序 - 强制 Https 连接
MEAN stack app on openshift - force Https connection
亲们,我这两天绞尽脑汁,这是我的情况:
- 我在 openshift 上有一个平均堆栈应用程序 运行 - 一切都很好。
- 我获得了 SSL 证书和密钥 - 一切正常。
- 我将证书和密钥上传到 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 }));
};
亲们,我这两天绞尽脑汁,这是我的情况:
- 我在 openshift 上有一个平均堆栈应用程序 运行 - 一切都很好。
- 我获得了 SSL 证书和密钥 - 一切正常。
- 我将证书和密钥上传到 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 }));
};