在我们的测试环境中,我们使用我们公司签名的 SSL 连接到另一台服务器。每次建立连接时,nodejs 都会抛出异常UNABLE_TO_VERIFY_LEAF_SIGNATURE。
我通过设置找到了解决方法拒绝未经授权: false,但这不适用于我们的情况。
证书已添加到/etc/ssl/证书并使用环境变量进行测试SSL_CERT_DIR成为/etc/ssl anb /etc/ssl/证书,但没有结果。
此外,最好不要在我们的文件中的某个位置添加证书并将其添加到每个请求中。
这是因为节点不使用您系统的 CA 配置;这包括其自己的内置可接受 CA 列表 https://github.com/joyent/node/blob/master/src/node_root_certs.h.
如果您希望节点 SSL 客户端接受自定义 CA,则必须在ca option http://nodejs.org/api/tls.html#tls_tls_connect_options_callback.
// do something like this when your app starts up:
fs.readFile('/path/to/ca.pem', function(err, cert) {
if (err) ...
else certBuffer = cert;
});
// then when you make requests...
https.request({
hostname: 'example.com',
port: 443,
path: '/',
method: 'GET',
ca: certBuffer
}, ...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)