NodeJS TLS Hostname/IP 与证书的别名不匹配

NodeJS TLS Hostname/IP doesn't match certificate's altnames

据我了解,nodejs ssl/tls 请求实现默认检查主机名或 IP 是否是证书的替代名称的一部分。

解决方法之一是在选项对象中您可以重写 checkServerIdentity 函数,这样它看起来像这样

var options = {
    url: 'https://localhost:8000/',
    ca: fs.readFileSync(caFile),
    checkServerIdentity: function (host, cert) {
        return undefined;
    }
};

现在在我的例子中,我并不真正关心服务器的主机名,只要它有一个由我信任的 CA 签名的证书(使用 option.ca 属性 设置) .

我的问题是,以这种方式覆盖此功能是否也会删除签名检查?如果确实如此,我应该如何实现它,以便我只能检查证书是否由 CA 签名?

答案是否定的,事实并非如此。它还会检查证书是否由您提供的 CA 签名。