У меня есть каталог, содержащий комплект сертификатов, скрипт Python и сценарий Node. Оба сценария делают запрос GET на тот же URL-адрес и снабжаются одним и тем же пакетом сертификатов. Сценарий Python делает запрос, как ожидается, однако сценарий узел выдает эту ошибку:Не удалось проверить первый сертификат
{ [Error: unable to verify the first certificate] code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' }
Python скрипт (Python 3.4.3 и requests библиотеку):
import requests
print(requests.get(url, verify='/tmp/cert/cacert.pem'))
Сценарий узел (Узел 4.2.6 и request библиотека):
var fs = require('fs');
var request = require('request');
request.get({
url: url,
agentOptions: {
ca: fs.readFileSync('/tmp/cert/cacert.pem')
}
}, function (error, response, body) {
if (error) {
console.log(error);
} else {
console.log(body);
}
});
Оба используют ту же версию OpenSSL:
$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2e-fips 3 Dec 2015
$ node -pe process.versions.openssl
1.0.2e
Я не считаю, что проблема быть с расслоением сертификата, и я не хочу, чтобы отключить проверку узла в узел.
Кто-нибудь знает, почему Node выбрасывает эту ошибку?