node.js - NodeJS/Express + HTTPS : How to deploy key & certificate to AWS EC2 node?

标签 node.js amazon-web-services express amazon-ec2 https

我对 Node.js 和 Express.js 非常陌生,我用它们来编写 Web API 服务。 要启用 HTTPS,该服务使用以下代码:

const server = https
  .createServer({
    key: fs.readFileSync('./cert/myservice.key'),
    cert: fs.readFileSync('./cert/myservice.crt')
  })
 .listen(serverConfig.server.port, () => logger.info(`MyService is up and running`));

很容易看出,此代码假定 .key.crt 文件在服务应用程序位置本地可用。 如果我想将服务部署到单个 AWS EC2 主机(出于简单原因),这些文件必须在那里,这似乎不是一个安全的解决方案。

我正在考虑使用 AWS IAM 来保护 secret 。 问题是无法将 secret 从 IAM 直接“部署”/提供给 EC2 Node 。 我必须使用 IAM 的 API 来获取 secret ,但问题是如何使 AWS 凭证在 EC2 上可用。

问题:是否有推荐的安全方法将 secret (包括证书和 key )部署到 AWS EC2 Node ?

最佳答案

不建议在 EC2 实例上保密。您可以使用AWS KMS保存 key 和 AWS Certificate Manager管理您的 SSL 证书。

您可以设置 Elastic Load Balancer (ELB) 在​​您的 EC2 实例前面,并在 ELB 上应用您的 SSL 证书。这是guide 。最好在 ELB 级别终止 SSL,以减轻 EC2 实例上的服务器负载。

关于node.js - NodeJS/Express + HTTPS : How to deploy key & certificate to AWS EC2 node?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491151/

相关文章:

mysql - 如何在 ionic 4 客户端应用程序和 Express 服务器之间建立连接?

node.js - 使用 IntelliJ IDEA 创建 React 应用程序

typescript - 如何向 Fargate JobDefinition 授予对 s3 和 DynamoDB 的访问权限?

amazon-web-services - 如何将docker app日志获取到S3存储桶

ios - 带有 Firebase iOS 的 Amazon SNS

node.js - 优化 Node.js 内存消耗

node.js - Sails.js Waterlock 如何覆盖登录操作(如何编写自定义登录操作)

node.js - 使用 pug 对 JSON 对象进行排序

express - 使用 React-Engine 和 Express 将服务器端变量传递到客户端

javascript - 数组未在 Node.js 中重置