Как игнорировать проверку SSL-сертификата в запросах узла?

Мне нужно отключить одноранговую проверку SSL для некоторых моих https запросов с использованием node.js Сейчас я использую пакет node-fetch, который, насколько мне известно, не имеет этой опции.

Это должно быть что-то вроде CURL CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false

Любой сетевой пакет позволяет это сделать? Возможно, есть способ пропустить проверку SSL в axios?


person Dmitry Samoylov    schedule 27.02.2019    source источник


Ответы (1)


Axios пока не решает эту ситуацию — вы можете попробовать:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

НО ЭТО ОЧЕНЬ ПЛОХАЯ ИДЕЯ, поскольку она отключает SSL на всем сервере node.

Или вы можете настроить axios для использования пользовательского агента и установить rejectUnauthorized в false для этого агента, как указано здесь< /а>.

Пример:

// At instance level
const instance = axios.create({
  httpsAgent: new https.Agent({  
    rejectUnauthorized: false
  })
});

instance.get('https://something.com/foo');

// At request level
 const agent = new https.Agent({  
 rejectUnauthorized: false
});

axios.get('https://something.com/foo', { httpsAgent: agent });
person iLuvLogix    schedule 27.02.2019
comment
Хм, поэтому я обновил свой код, чтобы включить пример экземпляра. Я также добавил import * as https from 'https'; Однако он не может найти https - person user1513388; 22.04.2020
comment
При использовании стандартного экспресс-узла используйте const https = require('https'); - person Juha Vehnia; 22.07.2020
comment
Прыгаю сюда очень поздно, но я попытался добавить httpsAgent на уровне запроса, но, похоже, это вообще не сработало. - person AKJ; 09.10.2020
comment
@AKJ Возможно, вы захотите открыть новый вопрос с минимальным проверяемым примером, возможно, мы сможем помочь .. ;) - person iLuvLogix; 09.10.2020
comment
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; должен - person Rohit Parte; 03.03.2021