【问题标题】:Add SSL to a Node.js endpoint: NGINX vs Endpoint将 SSL 添加到 Node.js 端点:NGINX 与端点
【发布时间】:2013-11-11 16:01:45
【问题描述】:

我需要将 SSL 添加到多个 Node.js 服务中,每个服务都在侦听自己的端口,并且 NGINX 将它们映射到我们的公共“api”域。

由于发布了新的安全策略,现在必须强制所有服务仅在 SSL 连接上工作。

由于我不习惯使用 SSL 证书,我不清楚在 NGINX 上设置 SSL 并让 NGINX 本身代理传递到 http:// 连接或拥有真实节点有什么好处.js 端点成为 SSL 服务器和(然后代理传递到 https://)。

我想通过 NGINX 解决方案,我可以重复使用相同的 SSL 证书,将其添加到我们的“api”域中,而每个不同的 SSL 节点服务器都需要不同的证书。 然后我不清楚在这样的生产环境中我是否应该使用自签名证书(因为端点是通过其他服务接触的),或者它是否应该是一个 CA 受信任的证书,就像它应该是一个公共域一样。

我在这些考虑中遗漏了什么?

【问题讨论】:

    标签: web-services node.js ssl https nginx


    【解决方案1】:

    我假设 NGINX 是面向公众的,而 nodejs 服务是内部的(即公共网络用户不能直接访问)。

    1. 您将保护公共网络与 NGINX 之间的连接。 NGINX 和 NodeJS 服务之间的传输是内部的,不需要保护。太浪费CPU了。

    2. 对于 NGINX,您从有效的证书颁发机构购买证书。对于内部服务,您可以使用自签名(即您自己的内部证书颁发机构生成的证书),但如上所述,您不需要在内部使用 SSL。

    【讨论】:

    • 很清楚。如果我开始跨多个节点生成服务怎么办?例如,NGINX 映射一个集群在 2/3 个不同内部 IP 上的服务(例如亚马逊实例)。我应该关心节点之间的流量还是只加密来自公共 Web 客户端和 NGINX 的流量?
    • 我不完全理解你的问题,请澄清。 “节点之间的交通”?没有,不是吗?但无论如何 - 我猜答案是“否”,因为那将是内部流量。经验法则是:您对您与公共网络之间的通信进行 SSL。内部通信应该是 SSL'ized。他们可以,但在您的内部 Web 服务上会浪费大量 CPU。
    猜你喜欢
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多