【问题标题】:Node.js TLS connections without hostname verification没有主机名验证的 Node.js TLS 连接
【发布时间】:2017-12-16 19:53:24
【问题描述】:

我正在玩一个相互连接的“节点”群,我真正关心的是它们彼此安全连接并且都经过身份验证。

为此,我认为 TLS 模块非常适合。我创建了一个 CA 并签署了一堆证书,每个节点一个。然后我遇到了一个问题,即现在针对节点连接的主机验证证书。

是否有可能以某种方式禁用或绕过公用名验证?

此设置是否存在根本性缺陷?

我是否正确,只要这些证书由我的 CA 签名,连接就应该是安全的,并且我确定只有我的节点可以连接?

必须签署锁定到主机名或 IP 的证书(或者在多个接口的情况下为多个)似乎只是一个烦恼。我了解到验证主机的要求实际上不是 TLS 的一部分,而是 HTTPS - 鉴于此,默认情况下这样做可能是 Node.js 错误?

【问题讨论】:

    标签: node.js ssl ssl-certificate


    【解决方案1】:

    是否有可能以某种方式禁用或绕过公用名验证?

    这可以通过将tls.connectcheckServerIdentity 选项设置为无操作函数来实现:

    const tls = require('tls')
    tls.connect({
      checkServerIdentity: () => undefined,
      ...
    })
    

    来源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      相关资源
      最近更新 更多