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

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主机(为了简单起见),这些文件将不得不在那里,这似乎不是一个安全的解决scheme。

我正在考虑使用AWS IAM来保护这些秘密。 问题在于无法直接从IAM“部署”/将密码提供给EC2节点。 我不得不使用IAM的API来获取秘密,但问题是如何使EC2上的AWS凭证可用。

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

不build议保留EC2实例的秘密。 您可以使用AWS KMS来保密密钥和AWS Certificate Manager来pipe理您的SSL证书。

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