Сделайте запрос с самоподписанным сертификатом в js (используя запрос-обещание от npm) - PullRequest
1 голос
/ 24 мая 2019

Я делаю простой запрос, используя библиотеку request-promise, но он выдает ошибку, потому что в моей цепочке есть самозаверяющий сертификат (что является требованием, а не иметь его - не вариант)

с помощью NPM я могу указать этот сертификат для установки пакетов (что я и сделал):

npm config set cafile "<path to my certificate file>"

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

Есть ли способ сделать запрос с помощью request-promise и указать самоподписанный сертификат для доверия?

Запрос очень прост: return request.get('/myendpoint')

Он просто выдает ошибку из-за самозаверяющего сертификата.

Если это невозможно с request-promise, есть ли другая библиотека, которая обеспечивает такую ​​функциональность?

1 Ответ

2 голосов
/ 24 мая 2019

Поскольку request-promise является оболочкой для библиотеки request (которая сама по себе является оболочкой для собственного модуля http), вы можете добавить следующую опцию к параметрам запроса:

const rp = require('request-promise');

const agentOptions = {
  host: 'www.example.com'
, port: '443'
, path: '/'
, rejectUnauthorized: false
};

const agent = new https.Agent(agentOptions);

rp({
  url: "https://www.example.com/api/endpoint",
  method: 'GET',
  agent: agent
}).then(...);

Основано на документации http.request.

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