无法在我的系统中正确使用客户端 SNI

Unable to properly utilize client-side SNI across my system

这个问题与我的另一个问题密切相关:Python `urllib3`: sudden "certificate verify failed: certificate has expired" error

出于某种原因,我为 SNI 提供正确主机名的尝试似乎没有成功。这首先体现在链接问题的代理中,因为如果 SNI 无法正常工作,它就无法成功验证证书。然后,当我使用安装的 OpenSSL(与 Python 和系统分开)继续调试问题时,它也显示相同的标志。我决定看看是否至少 Node.js 使用此脚本可以正确地与 SNI 一起使用,但运气不好:

fs = require('fs/promises');
tls = require('tls');

const [,, host, port, file] = process.argv;
const socket = tls.connect({
    host, port,
    servername: host,
    rejectUnauthorized: false,
}, async () => {
    const cert = socket.getPeerCertificate(false);
    result = tls.checkServerIdentity(host, cert) ? 'No.' : 'Yes.';
    console.log('Valid for', cert.subjectaltname + '?', result);
    //await fs.writeFile(file, cert.raw)
    socket.destroy()
});

我认为这个输出很好地展示了这个问题:

> node .\sni-helper.js i.stack.imgur.com 443 test.tmp
Valid for DNS:*.imgur.com, DNS:imgur.com? No.

许多其他主机名似乎也没有正确反映在提供的证书中。

我的配置:

其他人有这个问题吗?除了可能在 OpenSSL 存储库中提出问题之外,我不知道该去哪里,但我可能只是未能正确设置我的客户而忽略了一些明显的事情,所以我想先和你们核实一下。

原来 NetLimiter 4 是罪魁祸首。在排除原因时我最初怀疑它,但问题持续了很短的时间我关闭了系统服务,所以我认为它一定是别的东西。但我当时并不知道它还安装了一个独立于服务而保持工作的驱动程序。一旦我意识到这一点(承认我花了很长时间)我完全卸载了程序,现在问题消失了。