使用 Route53 的带有 HTTPS 的 EC2

问题描述 投票:0回答:1

我最近在 EC2 实例上部署了 Express 服务器作为我的 Web 应用程序的后端 (BE)。我已使用新购买的域、连接到 CloudFront 的 S3 以及来自 AWS Certificate Manager (ACM) 的 SSL 证书成功地使用 Route 53 配置了我的前端 (FE) 应用程序。

现在,我正在努力使用我刚刚通过 Route 53 购买的同一域为我的 Express BE 服务器设置 HTTPS。大多数在线指南建议为此使用负载均衡器,但我刚刚学习并发现它很昂贵。我想知道是否有其他方法可以实现这一目标,每种方法的优点和缺点是什么?

const app = express();
app.use(bodyParser.json());
app.use(cors);
app.use(cookieParser());

// https : Self signed cert
// const privateKey = fs.readFileSync("./key.pem", "utf8");
// const certificate = fs.readFileSync("./cert.pem", "utf8");
// const credentials = { key: privateKey, cert: certificate };
// const httpsServer = https.createServer(credentials, app);
const httpsServer = https.createServer(app);

httpsServer.listen(ports.https, () => {
  console.log("https server is running at port with HTTPS PROTOCOL", ports.https);
});

它可以很好地与自签名配合使用,但我确实找不到一种方法让它从我刚刚在route53中使用的相同域连接到我的ACM,而无需负载均衡器。

express amazon-ec2 https amazon-route53
1个回答
0
投票

通过 Amazon Certificate Manager (ACM) 获取的证书具有特定的兼容性,主要设计用于 Elastic Load Balancers、CloudFront、API Gateway 和其他 AWS 服务等服务。但是,它们不能直接安装在 EC2 实例上。

如果您需要在 EC2 实例上安装 SSL 证书,ACM 将无法用于此目的。您应该从 Lets Encrypt 或 GoDaddy 等第三方来源获取 SSL 证书,然后按照适合您的 Web 服务器的安装说明进行操作。

虽然成本可能是一个问题,但建议在 EC2 实例前面放置一个弹性负载均衡器 (ELB)。这不仅允许 ELB 管理 SSL 证书,还提供其他优势,包括:

  1. AWS Shield 保护,增强 DDoS 防御。
  2. 提高了可扩展性和灵活性,以便将来更换或扩展 EC2 实例。
  3. 将 HTTPS 连接的加密/解密工作负载卸载到 ELB,优化 EC2 实例的 CPU 以执行其他任务。
© www.soinside.com 2019 - 2024. All rights reserved.