所以我现在已经坚持这个问题一段时间了,无论我尝试什么,我都会收到以下套接字错误" UNABLE_TO_VERIFY_LEAF_SIGNATURE"
this.options = {
method: 'PUT',
host: **host**,
port: **port**,
ca: fs.readFileSync(__dirname + '/configs/certs/' + serverConfig.environment + "/cert.cer"),
pfx: fs.readFileSync(__dirname + '/configs/certs/' + serverConfig.environment + "/cert.pfx"),
passphrase: 'thepassphrase',
rejectUnauthorized: false,
strictSSL: false
};
function sendRequest (options, isSSL, callback) {
var returnData = '', req;
function getResponse(response) {
response.on('data', function (chunk) {
returnData += chunk;
});
response.on('end', function () {
callback(null, returnData);
});
}
var sendData = JSON.stringify(data);
if (isSSL) {
req = https.request(options, getResponse);
} else {
req = http.request(options, getResponse);
}
req.write(sendData);
req.end();
req.on('error', function (e) {
callback(e.message, null);
});
}
sendRequest(this.options, true, function (err, result){
...
}
getResponse函数中的响应对象返回返回500和主题行中提到的错误。我使用的是Node.js 0.12。
任何帮助都将不胜感激。
问候。
答案 0 :(得分:2)
如果尝试连接到使用由中间CA签名的证书的主机,则会发生此错误。 您可以通过设置
来解决此问题process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
许多模块(如请求模块)也支持选项rejectUnauthorized: false
以避免此问题。
但由于安全问题,不建议在生产中使用。