【问题标题】:NodeJs/ExpressJs TLS configuration on load balancer负载均衡器上的 NodeJs/ExpressJs TLS 配置
【发布时间】:2018-11-29 00:57:02
【问题描述】:
我有 3 个运行 NodeJS/ExpressJS 应用程序的应用程序服务器和一个负载均衡器,用于路由传入的请求(循环)。此设置当前基于 http,我们希望安装 TLS 证书以使其成为 https。我们的 devops 人已经离开了公司,我们在理解和维护这一点上有一个巨大的漏洞。我很确定这个设置在应用服务器前面没有 Apache 或 nginx。那么负载均衡在没有 ngix 或 Apache 的情况下如何工作呢?负载均衡器是否必须自己在服务器上运行?如果是这样,那是我们需要安装 TLS/SSL 证书的地方吗?我们使用的所有服务器都是基于 linux 的。
【问题讨论】:
标签:
node.js
express
ssl
load-balancing
tls1.2
【解决方案1】:
通常在 AWS 中,AWS Application Load Balancer 都用于负载平衡,这是 AWS 提供的一项托管服务,您将根据流量按小时付费。此外,可以在负载均衡器级别终止 TLS/SSL(也可以使用 AWS Certificate Manager 中的免费 SSL 证书)。
由于此负载均衡器是一项托管服务,因此高可用性和容错由 AWS 负责。
【解决方案2】:
通常,HTTPS 终止发生在负载均衡器上,并且在负载均衡器和服务器之间建立正常的 HTTP 连接。通过这样做,请确保服务器没有公开暴露(没有负载平衡器无法直接从 Internet 访问)。
在负载均衡器上安装证书并将其配置为从负载均衡器向服务器发出 http 请求。我假设您正在使用一些 IaaS(例如 AWS、GCP 等),并且这些设置在他们的文档中很容易找到。