【发布时间】:2017-04-08 16:45:12
【问题描述】:
设置:域名在 Godaddy 购买,网站托管在 nodejs 环境中的 AWS EC2 实例中。 (SSL 也是为了 https 目的而购买的)
问题:我已使用以下代码设置 SSL:
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 请求没有被转发到https 版本。 (服务器错误)。请提供解决方案来解决此问题。我尝试在godaddy中将域转发到https版本,它没有用。
【问题讨论】:
标签: node.js amazon-web-services express ssl amazon-ec2