protractor node-libcurl Ошибка: сертификат узла SSL или удаленный ключ SSH не в порядке
Я пытаюсь использовать модуль node-libcurl в своем проекте транспортира, но получаю сообщение об ошибке:
Ошибка: сертификат узла SSL или удаленный ключ SSH не в порядке
const {curly} = require('node-libcurl')
const { data } = await curly.post('https://www.example.com', {
postFields: JSON.stringify({"name":"rak"}),
httpHeader: [
'Content-Type: application/json',
'Accept: application/json',
'Access-Control-Allow-Origin : *'
],
})
Как избавиться от этой ошибки.
1 ответ
Из файла COMMON_ISSUES.md в репозитории проекта:
Вам нужно установить либо
CAINFO
илиCAPATH
параметры или отключите проверку SSL с помощьюSSL_VERIFYPEER
(не рекомендуется).Файл сертификата можно получить несколькими способами:
Извлечено прямо из вашей системы / браузера
Загружен с https://curl.haxx.se/docs/caextract.html, который основан на версии из Firefox
Создание файла с содержимым
tls.rootCertificates
, который был добавлен в Node.js v12.3.0, например:const fs = require('fs') const path = require('path') const tls = require('tls') const { curly } = require('node-libcurl') // important steps const certFilePath = path.join(__dirname, 'cert.pem') const tlsData = tls.rootCertificates.join('\n') fs.writeFileSync(certFilePath, tlsData) async function run() { return curly.post('https://httpbin.org/anything', { postFields: JSON.stringify({ a: 'b' }), httpHeader: ['Content-type: application/json'], caInfo: certFilePath, verbose: true, }) } run() .then(({ data, statusCode, headers }) => console.log( require('util').inspect( { data: JSON.parse(data), statusCode, headers, }, null, 4, ), ), ) .catch((error) => console.error(`Something went wrong`, { error }))