Я установил nodejs (последний v.7.x.x) в свой бинарный пакет формы CentOS 6.8. Я пытаюсь подключиться к сайту, который использует довольно старый протокол шифрования TSLv1. При рукопожатии с этим доменом (я использую модуль https) NodeJS выходит из строя со следующим сообщением об ошибке:
Error: write EPROTO 140078368692000:error:14077438:SSL
routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal
error:../deps/openssl/openssl/ssl/s23_clnt.c:769:
at exports._errnoException (util.js:1033:11)
at WriteWrap.afterWrite [as oncomplete] (net.js:816:14)
И когда я добавляю опцию secureProtocol (устанавливая ее на TLSv1_method), я получаю:
write EPROTO 140528424298272:error:14094438:SSL
routines:ssl3_read_bytes:tlsv1 alert internal
error:../deps/openssl/openssl/ssl/s3_pkt.c:1493:SSL alert number 80
140528424298272:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl
handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:659:
Версия OpenSSL (как будто это имеет значение для двоичного пакета) на моем компьютере в настоящее время имеет версию:
OpenSSL 1.0.1e-fips 11 Feb 2013
Насколько я знаю, NodeJS использует собственный двоичный пакет, поэтому обновление не поможет (и я бы хотел избежать этого, если это возможно).
Я уже проверял журнал изменений для OpenSSL, и, похоже, нет никаких проблем, которые влияют на эту конкретную сборку OpenSSL (я заметил проблему с рукопожатием).