В настоящее время я использую запрос для выполнения http-запросов в node.js. В какой-то момент я столкнулся с проблемой, когда я получал ошибки, которые указывали на UNABLE_TO_GET_ISSUER_CERT_LOCALLY. Чтобы обойти это он установил rejectUnauthorized. Мой рабочий код с запросом выглядит следующим образом:
var url = 'someurl';
var options = {
url: url,
port: 443,
// proxy: process.env.HTTPS_PROXY, -- no need to do this as request honors env vars
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
'Accept-Language': 'en-us',
'Content-Language': 'en-us'
},
timeout: 0,
encoding: null,
rejectUnauthorized: false // added this to prevent the UNABLE_TO_GET_ISSUER_CERT_LOCALLY error
};
request(options, function (err, resp, body) {
if (err) reject(err);
else resolve(body.toString());
});
Я думал, что попробую переключиться на API выборки, используя async / await, и сейчас пытаюсь использовать node-fetch, чтобы сделать то же самое. Однако, когда я делаю то же самое, я возвращаюсь к ошибкам UNABLE_TO_GET_ISSUER_CERT_LOCALLY. Я прочитал, что мне нужно использовать прокси-агент, и попытался использовать модуль прокси-агента, но мне все еще не повезло.
Исходя из сообщения https://github.com/TooTallNate/node-https-proxy-agent/issues/11 Я думал, что будет работать следующее:
var options = {
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
'Accept-Language': 'en-us',
'Content-Language': 'en-us'
},
timeout: 0,
encoding: null
};
var proxyOptions = nodeurl.parse(process.env.HTTPS_PROXY);
proxyOptions.rejectUnauthorized = false;
options.agent = new ProxyAgent(proxyOptions);
const resp = await fetch('someurl', options);
return await resp.text();
, но я все еще получаю ту же ошибку. До сих пор единственный способ, которым я смог обойти это с помощью node-fetch, это установить NODE_TLS_REJECT_UNAUTHORIZED = 0 в моей среде, что я на самом деле не хочу делать. Может кто-нибудь помочь мне показать, как заставить rejectUnauthorized работать с извлечением узла (предположительно, с использованием агента, но мне, честно говоря, все равно, сколько это указано в части запроса).