Если я отключу NODE_TLS_REJECT_UNAUTHORIZED, мой запрос все равно будет отклонен - PullRequest
0 голосов
/ 02 июля 2018

Я отключаю Node от отклонения самозаверяющих сертификатов и выполнения запроса.

const { USER, PW } = process.env;

const b64 = new Buffer(`${VP_API_USER}:${VP_API_PW}`).toString("base64");

const Authorization = `Basic ${b64}`;

const doFind = async url => {
  process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
  const results = await fetch(url, { headers: { Authorization } })
    .then(r => (r.ok ? r.json() : Promise.reject(r)))
    .catch(err => {
      return Promise.reject(err);
    });
  process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1;

  return results;
};

Мне все еще отказывают.

{ FetchError: request to https://<url>:55544/contracts failed, reason: connect ECONNREFUSED <url>:55544
    at ClientRequest.<anonymous> (/Users/mjhamm75/Developer/sedd-monorepo/node_modules/node-fetch/index.js:133:11)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at TLSSocket.socketErrorListener (_http_client.js:387:9)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
  name: 'FetchError',
  message: 'request to https://<url>:55544/contracts failed, reason: connect ECONNREFUSED <url>:55544',
  type: 'system',
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED' }

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Предыдущий ответ выглядит неверно - ждите отложить выполнение следующей строки, пока обещание не будет выполнено. Согласно документации значение NODE_TLS_REJECT_UNAUTHORIZED должно быть строкой '0', чтобы отключить проверку TLS.

0 голосов
/ 25 октября 2018

process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1;

Строка

должна идти внутри обратного вызова (ваш then или catch до возврата. Потому что обещание разрешается в обратном вызове, но ваша строка

process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1;

записывается вне его, даже если оно появляется после оператора, оно запускается немедленно, не ожидая обратного вызова. Таким образом, ваш TLS фактически никогда не отключается.

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...