gpt4 book ai didi

node.js - 在 NodeJS/Bluemix 中强制使用 SSL

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:11 25 4
gpt4 key购买 nike

如何强制 NodeJS 应用程序使用 https URL?我知道代码和选项。我的问题是,如果我只是转到 http(桌面)- 它会加载一些内容(但不应该),但是如果它转到移动设备上的 http,它不会加载或转发到 https。

因此 - 我的问题:

如果我只有 https 创建服务器,没有 http - 我不确定为什么它甚至加载非 https 代码......或者为什么它不转发到 https?

https.createServer(options, app).listen(8000);  

有什么想法吗?

最佳答案

在 IBM Cloud (Bluemix) 上,您应该按如下方式检查请求 header

// Check the request header
app.use (function (req, res, next) {
if (req.headers && req.headers.$wssc === "https")
{
// request was via https, so do no special handling
next();
} else {
// request was via http, so redirect to https or simply block
console.log("Blocked unsecured request");
// res.redirect('https://' + req.headers.host + req.url);
res.status(403).send();
}
});

请注意,默认的 req.secure 在 bluemix 上不起作用,因为 Bluemix 代理服务器终止了 SSL,因此您的应用程序的所有流量看起来都像 HTTP。但是,代理还会添加一个名为 $WSSC 的特殊 HTTP header ,其值为 http 或 https

关于node.js - 在 NodeJS/Bluemix 中强制使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36162840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com