NodeJS SSL验证不正确
问题描述:
我试图检查带有节点的外部域的SSL状态。它适用于使用google.com
的测试。然而,当我尝试一个URL,我知道有一个无效的SSL证书(在这种情况下撤销)为res.socket.authorized
值仍然是我使用这个错误,或有更好的方法来验证域的状态true
NodeJS SSL验证不正确
上午SSL证书?
const https = require('https');
const options = {
host: 'revoked.badssl.com',
method: 'get',
path: '/'
};
const req = https.request(options, res => {
console.log('Certificate Status: ', res.socket.authorized);
});
req.on('error', error => {
console.error('Error: ', error);
});
req.end();
答
所以这原来是一个具体的撤销SSL证书的问题。
证书的吊销不会跨所有证书颁发机构传播。每个CA都会发布一个证书撤销列表(CRL),其中包含仅由此特定CA颁发的撤销证书列表。 How does certificate revocation work with intermediate CA's?
我不认为节点进行主动CRL检查,如果你的SSL主机是有效的,否则吊销不过:围绕这个在这里工作
更多细节?很确定您需要通过'crl'选项向客户端提供CRL https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options – Matt
请参阅此链接https://stackoverflow.com/a/34354118/7635845 –