#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, но должен быть способ заставить это сделать.
Заранее спасибо.