从 AWS 提供服务时如何为 Express 应用程序指定 https?

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

我在 AWS lightsail 上部署了前端 React 应用程序和后端节点/express 应用程序。 我已将前端配置为使用 bncert 使用 https,但我现在需要让后端使用 https。我将此配置添加到我的 Express 应用程序中

const options = {
    key: fs.readFileSync('/opt/bitnami/apache/conf/bitnami/certs/server.key'),
    cert: fs.readFileSync('/opt/bitnami/apache/conf/bitnami/certs/server.crt'),
}
  
const server = https.createServer(options, app);

server.listen(5000, () => {
  console.log('HTTPS Server running on port 5000');
});

但是,当我像这样访问我的网站时:https://myapp.com:5000/api/getcontent Chrome 警告我此应用程序不安全。有谁知道问题出在哪里吗?

amazon-web-services express apache https
1个回答
0
投票

如果您的应用程序的前端需要 HTTPS,那么在 AWS 上托管时您有多种选择。需要注意的是,您不能让使用 HTTPS 的前端与使用 HTTP 的后端进行通信,因为这会导致安全漏洞。

我个人更喜欢的一种方法是使用利用 AWS API Gateway 和 Lambda 函数的无服务器解决方案。这个设置看起来像:

前端 -> API 网关 -> Lambda -> AWS 服务

借助这种无服务器架构,启用 HTTPS 非常简单,因为您无需担心配置服务器或管理基础设施。 API 网关会自动为您处理 HTTPS 配置。

另一种选择是使用 AWS Amplify,它提供完全托管的后端解决方案。在 Amplify 上部署时,后端会自动支持 HTTPS,这是一个方便的选择。

如果您使用提供虚拟专用服务器 (VPS) 的 AWS Lightsail,则需要手动配置 SSL/TLS 证书。高级步骤是:

在 AWS Lightsail 中配置 SSL/TLS 证书。获得证书后,您需要在 Lightsail 实例中配置它。您可以通过以下方式执行此操作:

  • 导航到 AWS Lightsail 控制台。
  • 选择运行应用程序的实例。
  • 单击“网络”选项卡。
  • 在“HTTPS/SSL”部分中,单击“创建证书”并按照屏幕上的说明上传您的 SSL/TLS 证书。
© www.soinside.com 2019 - 2024. All rights reserved.