0
设置:域名在Godaddy处购买,网站在AWS EC2实例中的nodejs环境中托管。 (SSL还购买了HTTPS的目的)将http请求重定向到https,用于AWS EC2上托管的网站
问题:
var https = require('https');
var http = require('http');
const config = require('./config');
const fs = require('fs');
var app = express();
var redirectApp = express();
var options = {
key: fs.readFileSync(config.sslKeyPath),
cert: fs.readFileSync(config.sslCertPath),
ca: fs.readFileSync(config.sslCaPath)
};
var server = https.createServer(options, app);
var redirectServer = http.createServer(redirectApp);
redirectApp.use(function requireHTTPS(req, res, next) {
if (!req.secure) {
return res.redirect('https://www.domain.com'+ req.url);
}
next();
});
server.listen(httpsport, function() {
console.log("Listening on " + port);
});
redirectServer.listen(httpport, function() {
console.log("Listening on " + port);
});
部署之后,我能够访问https://www.domain.com和https://domain.com但http://www.domain.com或http://domain.com请求不是:我用下面的代码已经设置SSL获得转发到https版本。 (服务器错误)。请提供解决方案来解决这个问题。我尝试将域名转发到godaddy的https版本,这是没用的。
不工作@Dave – Vignesh
@Vignesh从代码粘贴的副本我已经在几个地方运行,所以它适用于我。也许解释它是如何工作的。 –