Node-fetch: отключить проверку SSL - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть следующий код, который запускается с экспресс-сервера:

import fetch from 'node-fetch';

let formBody = [];

const dataLogin = {
      'username': 'myUser',
      'password': 'myPassword'
};

for (let p in dataLogin) {
   let encodedKey = encodeURIComponent(p);
   let encodedValue = encodeURIComponent(dataLogin[p]);
   formBody.push(encodedKey + "=" + encodedValue);
 }

 formBody = formBody.join("&");   

 const url = 'https://external-login-api.com';
 return fetch(url, {
          method: 'POST',
          headers: {
              'Content-Type': 'application/x-www-form-urlencoded',
              'Content-Length': formBody.length         
  },     
  body: formBody
 });

Когда я запускаю код, я получаю следующую ошибку, несмотря на то, что могу без проблем выполнить запрос в Postman.

{"message": "запрос к https://external -login-api.com не выполнен, причина: запись EPROTO 7316: ошибка: 141A318A: процедуры SSL: tls_process_ske_dhe: dhслишком маленький ключ: openssl \ ssl \ statem \ statem_clnt.c: 1472: \ n "," type ":" system "," errno ":" EPROTO "," code ":" EPROTO "}

Как отключить проверку SSL для этого запроса?

1 Ответ

0 голосов
/ 24 сентября 2018
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

Гарантирует, что вы игнорируете любые отклоненные сертификаты TLS, или вы можете установить это как переменную среды при запуске службы вашего узла. Однако это, скорее всего, не поможет и, вероятно, является плохой идеей. Ошибка SSL не в том, что сертификат недействителен (например, самозаверяющий сертификат), а в силу слабого ключа Диффи-Хеллмана вКонфигурация SSL / TLS.

Если вы пользуетесь этой услугой, вам следует обратить внимание на исправление и улучшение шифров TLS / SSL. См. Этот ответ для получения дополнительной информации .

Важная часть:

Вы должны использовать 2048-битные группы Диффи-Хеллмана или более.Вам не следует использовать 512-битные или 1024-битные группы Диффи-Хеллмана.

Если это сторонняя служба, вам следует обратиться к ним или использовать другую службу, поскольку они оставляют себя открытыми.на атаку Logjam , которая также обсуждается в ответе, связанном выше.

...