Tôi có thư mục chứa gói chứng chỉ, tập lệnh Python và tập lệnh Node. Cả hai tập lệnh tạo yêu cầu GET cho cùng một URL và được cung cấp cùng một gói chứng chỉ. Các kịch bản Python thực hiện yêu cầu như mong đợi tuy nhiên kịch bản nút ném lỗi này:Không thể xác minh chứng chỉ đầu tiên
{ [Error: unable to verify the first certificate] code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' }
Các Python script (Python 3.4.3 và requests thư viện):
import requests
print(requests.get(url, verify='/tmp/cert/cacert.pem'))
kịch bản nút (Nút 4.2.6 và thư viện 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);
}
});
Cả hai đều đang sử dụng cùng một phiên bản 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
Tôi không tin rằng sự cố xảy ra với gói chứng chỉ và tôi không muốn tắt xác minh máy chủ trong Nút.
Không ai biết tại sao Node lại ném lỗi này?