没有主机名验证的Node.js TLS连接

时间:2017-12-16 19:53:25

标签: node.js ssl ssl-certificate

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

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

是否有可能以某种方式禁用或解决公共名称验证?

这种设置是否存在根本缺陷?

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

似乎只是一个烦恼,必须签署锁定到主机名或IP(或多个接口的情况下)的证书。我已经了解到验证主机的要求实际上不是TLS的一部分,而是HTTPS - 从这个角度来看,默认情况下这可能是一个Node.js错误吗?

1 个答案:

答案 0 :(得分:2)

  

是否有可能以某种方式禁用或解决公共名称验证?

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

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

来源:

相关问题