node.js - 服务器到服务器通信的 SSL 证书替代方案

标签 node.js ssl express ssl-certificate

我正在开发一个基于 Express 框架的 Node.js 应用程序。在后端,我需要让服务器相互通信(即服务器 1 向服务器 2 发出请求)。

是否可以放弃 DNS A 记录并仅使用服务器的 IP 地址?

在那种情况下,我如何验证服务器和“客户端”(又名服务器)。我正在考虑要求服务器和“客户端”在请求和响应中分别传递一个安全 cookie。然后在采取任何其他操作之前验证安全 cookie。

最佳答案

使用 IP 可能比 DNS 更安全(例如没有 DNS 欺骗),但它仍然允许 ARP 欺骗,例如其他一些计算机声称拥有此 IP。如果两台计算机不在同一个网络中,也可以通过路由器等方式劫持请求。

安全 cookie 只是一个共享 secret 。与基于公钥的身份验证(例如使用证书)相反,共享 secret 的缺点是您需要以安全的方式分发它们,以便其他人无法访问它们。

我不认为您的想法比带证书的 SSL 更容易处理,所以我看不出制定自己的安全协议(protocol)有什么好处。历史告诉我们,此类自行开发的协议(protocol)大多提供比已建立的解决方案更差的安全性。

关于node.js - 服务器到服务器通信的 SSL 证书替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766688/

相关文章:

php - SSL_ERROR_SSL 错误 :14090086:lib(20):func(144):reason(134) - PHP solution?

javascript - 设置为 req 并在另一条路由中访问

php - 使用 php exec 函数执行 Node 命令时出错

web-services - 在 Azure Web 服务 (API) 上强制执行 HTTPS 重定向

docker - 如何使 Drone Docker 插件通过具有自签名 TLS 证书的自托管注册表进行身份验证

node.js - 平均堆栈文件上传

Node.js Express 提供 index.html 而不是静态文件

node.js - 在发送 8 个字节之前,Chrome 不会将文件显示为正在下载(Firefox 会)

javascript - 使用kafka消费者进行数据库操作或http调用

javascript - Node.js 错误 : EADDRINUSE on Elastic Beanstalk host