我在玩一群连接在一起的“节点”,我真正关心的是它们是安全地连接在一起的,并且都是经过认证的。
为此,我认为TLS模块将是一个很好的匹配。我创建了一个CA并签署了一堆证书,每个节点都有一个证书。然后,我遇到了一个问题,即证书现在是针对节点连接的主机进行验证的。
是否有可能以某种方式禁用或绕过公共名称验证?
这个设置有什么根本缺陷吗?
我是否正确地指出,只要这些证书是由我的CA签名的,连接就应该是安全的,而且我确信只有我的节点可以连接?
它似乎只是一个麻烦,必须签署证书锁定到一个主机名或IP (或在多个接口的情况下)。我已经了解到,验证主机的需求实际上不是TLS的一部分,而是HTTPS --在这种情况下,默认情况下这样做可能是一个Node.js错误?
发布于 2017-12-23 18:24:38
是否有可能以某种方式禁用或绕过公共名称验证?
通过将checkServerIdentity
选项tls.connect
设置为非op函数,这是可能的:
const tls = require('tls')
tls.connect({
checkServerIdentity: () => undefined,
...
})
资料来源:
https://stackoverflow.com/questions/47849427
复制