使用This tutorial我能够使用SSL密钥设置NodeJS。它创建了两个http服务器(一个是安全的,一个不是)。
var app = express();
var sslOptions = {}; // SSL key stuff in here
var https = require('https');
https.createServer(sslOptions, app).listen(443);
var http = require('http');
http.createServer(app).listen(80);
然后它检查任何传入的请求 - 如果它不安全,它会将其重定向到安全URL
app.use(function(req, res, next) {
console.log('request... ' + req.url); // I don't see this
if (req.secure) {
console.log('secure ' + req.url);
next();
} else {
console.log('redirect... https://' + req.headers.host + req.url);
res.redirect('https://' + req.headers.host + req.url);
}
});
当我开始使用新浏览器时,我看到一些请求,例如favicon.ico。但是对www.mydomain.com的实际请求似乎一起绕过了这一点(就像我对终端的要求一样)。更糟糕的是我曾经在这一点上工作过。不知道我做了什么打破它。 Anywho,结果是http://www.example.com试图在https://www.example.com/endpoint点击一个端点而且它失败了(更不用说没有加载页面的安全版本了。)