При отправке запроса POST на внешний сервер Node выдает ошибку «самоподписанный сертификат в цепочке сертификатов». - PullRequest
0 голосов
/ 01 апреля 2020

Я использую ax ios для отправки запроса POST на внешний сервер с некоторыми данными. Вот моя настройка топора ios, без каких-либо дополнительных средств для обработки самозаверяющего сертификата:

const https = require('https')
const axiosConfig = {
  method: 'post',
  data: callbackXML,
  url: process.env.CALLBACK_URL,
  headers: responseHeaders
}

await axios.request(axiosConfig).then((response) => {
  console.log('resp is', response)
})
  .catch(e => {
    console.log(`${helpers.getLoggingTimestamp()} error is`)
    console.log(e.toJSON())
  })

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

NODE_TLS_REJECT_UNAUTHORIZED='0'

Однако по понятным причинам это не приемлемо в производственной среде.

Я попробовал почти все, что касается топи c здесь, на SO, Googling и др. c. Я попытался добавить сертификаты к NODE_EXTRA_CA_CERTS через переменные env, а также установить параметр ca: в https Agent и передать его в конфигурацию ax ios. Я также попытался добавить сертификаты через командную строку, например, так: export NODE_EXTRA_CA_CERTS=/c/code/server.crt.

Мой реальный вопрос: где находится мой сертификат-нарушитель? Если я не добавлю оскверняющий самоподписанный сертификат, то я никогда не решу это.

Примечание: это проблема узла, а не проблема топора ios, как я пытался другие библиотеки запросов, и я получаю ту же ошибку.

...