【发布时间】:2021-04-16 04:47:16
【问题描述】:
我在 expressjs 中构建我的项目,我想将它部署在特定端口上。我在我的 AWS EC2 实例(Ubuntu)上部署了它并且它工作正常,但问题是它运行在 HTTP 上,而不是 HTTPS。所以我研究了如何在 HTTPS 上运行 expressjs,我发现的唯一方法如下:
var fs = require("fs"),
http = require("https");
var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();
var credentials = {key: privateKey, cert: certificate};
var server = http.createServer(credentials,function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(8000);
但是这种方法的问题是它需要证书和密钥文件才能启用 HTTPS。我正在使用公共 ACM,AWS 没有为此提供文件。我尝试了使用库https://www.npmjs.com/package/express-sslify 的另一种方法。它将我的 expressjs 重定向到 HTTPS,但它给出了 SSL 错误。 SSL 已经使用 AWS ACM 公共证书部署在我的网站上,并且运行良好。 请指导我需要哪些步骤才能使我的 expressjs 项目与 AWS ACM 兼容。
【问题讨论】:
标签: javascript node.js amazon-web-services express ssl