Включение TLSv1.0 в модуле https узла 16

#node.js #network-programming #tls1.0

#node.js #сетевое программирование #tls1.0

Вопрос:

В настоящее время я пытаюсь установить https-соединение с хостом. Проблема, с которой я сталкиваюсь, заключается в том, что указанный хост поддерживает только TLSv1.0, и поскольку программное обеспечение, размещенное там, является сторонним, а не открытым исходным кодом, мы никак не можем это изменить.

Всякий раз, когда я пытаюсь подключиться через модуль https узла, я получаю следующую ошибку:

 write EPROTO 12772:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:wsdepsopensslopensslsslrecordssl3_record.c:332:  

Я уже пытался запустить узел с --tls-min-v1.0 , установив параметры безопасности и настройки secureProtocol: "TLSv1_method" , но ошибка все еще остается.

И да,я подтвердил, что хост поддерживает только TLSv1.0 (уменьшив версию TLS, которую curl использует для подключения, пока соединение не будет установлено).

Текущий код:

 var options = {  host,  port,  path,  // authentication headers  headers: {  Authorization:  "Basic "   Buffer.from(user   ":"   password).toString("base64"),  },  secureOptions: constants.SSL_OP_LEGACY_SERVER_CONNECT | constants.SSL_OP_NO_TLSv1_1 | constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_SSLv3,  rejectUnauthorized: false,  };  const request = https.get(options, (res) =gt; {  res.on("end", () =gt; {  response.status(204);  response.send();  });  res.on("error", (e) =gt; {  response.status(500);  response.send();  });  });  request.on('error', (e) =gt; {  console.error(e);  response.status(500);  response.send();  })  request.end();   

Я предполагаю, что произошла ошибка, потому что node не хочет использовать старую версию TLS, но должен быть способ заставить это сделать.

Заранее спасибо.