Node.js v8.11.1 Ошибка EPROTO при попытке POST с использованием модуля https - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть система, которая работает на узле 8.11.1 на AWS.Есть функция, которая записывает логи на другой сервер.Эта функция принимает объект запроса, который она регистрирует.

Моя проблема возникает во время фактической попытки POST, выдавая следующую ошибку:

Ошибка: запись EPROTO 139746875082624: ошибка: 140770FC:Подпрограммы SSL: SSL23_GET_SERVER_HELLO: неизвестный протокол: ../deps / openssl / openssl / ssl / s23_clnt.c: 827:

Я не вижу ничего плохого в своем коде.
Почемупроисходит ошибка, и что я могу сделать, чтобы исправить ее?

Вот код внутри функции:

const https = require('https');    
try
{
   const postData = "New log finished " + JSON.stringify(request, null, 2);

   const options =
   {
      hostname: LOG_DOMAIN,
      port: LOG_PORT,
      path: '/',
      method: 'POST'
   };

   const req = https.request(options);
   req.on('error', (e) =>
   {
      console.error("ERROR writing logs: " + e);
   });
   req.write(postData);
   req.end();
}
catch (e)
{
   console.log(e);
}

LOG_DOMAIN и LOG_PORT - переменные, передаваемые в функцию.

1 Ответ

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

После дальнейших исследований выясняется, что Аравинд Воггу (см. Комментарии) был в правильном ключе: ошибка возникает из-за попыток использовать HTTPS для сервера, который допускает только HTTP.

OpenSSL умирает при попыткеЗащищайте соединение с чем-то незащищенным.

Единственное изменение, необходимое для правильной работы моего кода, заключалось в удалении «s» из «https» в используемых местах.

const http = require("http");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...