我对 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/