NodeJS / Express + HTTPS:如何部署密钥和&证书到AWS EC2节点?

时间:2017-08-03 17:39:47

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

我对Node.js&我用来编写Web API服务的Express.js。 要启用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来保护机密。 问题在于,无法直接从IAM部署"部署" /使秘密可用于EC2节点。 我必须使用IAM的API来获取秘密,但问题是如何在EC2上提供AWS凭证。

问题:是否有建议的安全方式将机密(包括证书和密钥)部署到AWS EC2节点?

1 个答案:

答案 0 :(得分:1)

不建议在EC2实例上保密。您可以使用AWS KMS保留密钥,AWS Certificate Manager来管理您的SSL证书。

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

相关问题