Ошибка AWS.HttpRequest - невозможно получить сертификат локального эмитента - PullRequest
0 голосов
/ 19 сентября 2019

Я использую AWS.HttpRequest в лямбде для вызова конечной точки HTTPS, и получаю эту ошибку:

Error: unable to get local issuer certificate
    at TLSSocket.<anonymous> (_tls_wrap.js:1105:38)
    at emitNone (events.js:106:13)
    at TLSSocket.emit (events.js:208:7)
    at TLSSocket._finishInit (_tls_wrap.js:639:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:469:38) code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY'

Я не могу найти информацию о том, что делать конкретно для HTTPSзвонки при использовании AWS.HttpRequest.

По сути, мой код выглядит так (довольно тривиально):

    const req = new AWS.HttpRequest(url, region);
    req.method = 'POST';
    req.path = '/_bulk';
    req.body = doc;
    req.headers['Content-Type'] = 'application/json';
    req.headers.Host = endpoint.host;

    const send = new AWS.NodeHttpClient();
    send.handleRequest(req, null, (httpResp) => {
        let body = '';

        httpResp.on('data', (chunk) => {
            body += chunk;
        });
        httpResp.on('end', () => {
            resolve({ response: httpResp, body });
        });
    }, (err) => {
        reject(err);
    });

Код работает нормально, если конечной точкой является HTTP (та же конечная точка, только на порту 80), но выдает эту ошибкуесли я передаю конечную точку HTTPS.

Обновление: я заменил AWS.HttpRequest на библиотеку узлов https, и я получаю ту же ошибку.Похоже, я что-то упустил.

...