'request': Error: {Ошибка: самоподписанный сертификат в цепочке сертификатов - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь получить некоторую информацию из нижеприведенного API, и я получаю ниже ошибку

const request = require('request');


var options = {
    url : 'https://example.com',
}

ИЛИ

var options = {
  url : 'https://example.com',
  agentOptions: {
    ca: fs.readFileSync('ca.pem')
  }
}

console.log(options)

request(options, function (error, response, body) {
  console.log('error:', error); 
  console.log('statusCode:', response && response.statusCode); 
  console.log('body:', body ); 
});



  error: { Error: self signed certificate in certificate chain
        at Error (native)
        at TLSSocket.<anonymous> (_tls_wrap.js:1092:38)
        at emitNone (events.js:86:13)
        at TLSSocket.emit (events.js:185:7)
        at TLSSocket._finishInit (_tls_wrap.js:610:8)
        at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:440:38) code: 'SELF_SIGNED_CERT_IN_CHAIN' }

пример файла pem

-----BEGIN CERTIFICATE-----
Key
-----END CERTIFICATE-----

Я не хочу использовать ни NODE_TLS_REJECT_UNAUTHORIZED = '0', либо rejectUnauthorized: false

1 Ответ

0 голосов
/ 26 ноября 2018

В соответствии с прекрасным руководством :

Можно принимать и другие сертификаты, кроме тех, которые подписаны общепринятыми центрами сертификации (CA).Это может быть полезно, например, при использовании самозаверяющих сертификатов.Чтобы требовать другой корневой сертификат, вы можете указать подписывающий CA, добавив содержимое файла сертификата CA в agentOptions.Сертификат, который представляет домен, должен быть подписан указанным корневым сертификатом:

var options = {
  url : 'https://example.com',
  agentOptions: {
    ca: fs.readFileSync('ca.pem')
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...