![如何在运行 express.js 的单实例 Elastic beanstalk 环境上启用 HTTPS?](https://linux22.com/image/759128/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%BF%90%E8%A1%8C%20express.js%20%E7%9A%84%E5%8D%95%E5%AE%9E%E4%BE%8B%20Elastic%20beanstalk%20%E7%8E%AF%E5%A2%83%E4%B8%8A%E5%90%AF%E7%94%A8%20HTTPS%EF%BC%9F.png)
我有一个在 AWS Elastic Beanstalk 上运行 express.js 框架的 node.js 服务器。我的服务器在 http 上运行良好,但我需要将其更新为 https。值得注意的是,该环境是单实例环境。
我已经查看了 4 个小时的文档和指南,但我所做的一切都破坏了对我的服务器的所有访问。我使用 Amazon 证书管理器生成了一个证书,并设置了我的负载均衡器以从端口 80 接收 HTTP 请求并将它们发送到端口 80 上的服务器,并从端口 443 接收 HTTPS 请求并将其转发到端口 443 上的服务器。问题似乎是服务器没有监听端口 443。我尝试了很多方法,包括 AWS Elastic Beanstalk 文档中的几乎所有内容,但它完全破坏了我的服务器。我非常绝望,所以任何帮助都将不胜感激。如果人们需要更多信息,我很乐意回答问题。
答案1
设置负载均衡器监听端口 443,并将请求转发到端口 80 上的服务器。这称为“SSL 卸载”。
答案2
您需要在实例本身上编写证书安装脚本。我建议您研究一下 LetsEncrypt,因为它们免费提供 SSL 证书,并且可能有一个自动化流程或 express.js 包,您可以安装它以快速运行。