【发布时间】:2021-02-19 19:51:55
【问题描述】:
我有一个运行我的 node.js 后端的 ec2 实例 (ubuntu):APi + Mongodb。我用 PM2 运行节点服务器。我正在尝试向其添加 https。
这是我的 node.js 代码:
const express = require("express");
const app = express();
const fs = require("fs");
const https = require("https");
var options = {
key: fs.readFileSync("./privatekey.pem"),
cert: fs.readFileSync("./server.crt"),
};
const port = process.env.PORT || 3000;
https
.createServer(options, app)
.listen(port, () => console.log(`listening to port ${port}`));
HTTP 有效。当我在端口 3000 访问 https 时,我收到以下消息:
"This connection is not private". This website may be impersonating "ec2-XX-XXX-XXX-XXX" ....."
我知道证书只适用于本地主机?但是我怎样才能让它们在产品中工作呢?据我了解,不能为 IP 地址购买 SSL 证书?
有什么建议吗?
PS:我尝试使用端口 443,但遇到了权限问题(显示在 PM2 日志中)...
-------编辑----
我的意思是在没有任何 SSL 安全错误的情况下将我的前端(在一个实例中)连接到我的后端(在另一个实例中)。
我最终在 AWS 托管区域中创建了一个子域,该子域重定向到我的前端域。我使用 Nginx 和 Certobot 将新的 SSL 证书上传到我的子域实例。
我之前创建了一个子域,但做错了。这次我按照这个教程做了,花了 2 分钟。
https://dev.to/arswaw/create-a-subdomain-in-amazon-route53-in-2-minutes-3hf0
【问题讨论】:
标签: node.js amazon-web-services ssl amazon-ec2 https