NodeJS 服务器-服务器安全通信

Rai*_*ain 5 ssl https node.js server

我有两台服务器在同一个域上使用 NodeJS。(server1.example.com 和 server2.example.com)

我想以安全的方式将消息从一台服务器发送到另一台服务器。

现在,我使用的是通过发送一个HTTPS POST,如发送我的信息https://example.com{secret:XXXXX,message:1234}

有没有更干净的方法来做到这一点?如果是这样,需要的确切步骤是什么?注意:我在网站上有 SSL 证书。两台服务器都在同一个域中。

小智 4

我可以想到一些选项,当然,这取决于您正在寻找的加密量和安全性(如果 HTTPS 的强度不足以满足特定通信的要求)。(尽管如上所述,您确实有 HTTPS。)

  1. 您可以让发送服务器发出整个 JWT 路由。发送带有Token的信息,并在对方进行验证。确保令牌也有一个短的 TTL。(如果你真的想在这里孤注一掷,你可以开始实现 OAuth2 框架,尽管这可能完全是多余的。)

  2. 另外,您可以创建一个Websocket HTTPS服务器,并且只接受来自特定传入端口的信息。这将允许您使用 JWT 并通过端口访问进一步验证。您打开的端口将只允许接受来自特定 IP(即您的传出服务器)的数据包。

  3. 您可以像通过加密整个消息(通过 Node NPM 模块之一或通过 Crypto)一样添加另一层,以便消息和秘密都经过哈希处理。

  4. 您还可以添加一个缓存层(Redis 或 Node-Cache 模块),所有解密都将在其中完成,以加快进程。

  5. 尽管您必须制定实际的时间表,但使用的另一个技巧是根据进程或不同的时间或您希望的任何时间表混合您使用的各种哈希例程。

  6. 最后,一个有时被忽视的选项是在接收计算机上安装防火墙,对接收内容和从何处接收有非常具体的规则。(但这不是 Node 进程,可能需要一些时间才能正确。)

但以上均未链接到 Express 或中间件。我假设如果您采用上述任何一种,最终结果将需要一些 NPM 模块。

可能忘记了一些选项,但希望这会有所帮助。