it-swarm.com.ru

запрос узла - получение ошибки "SSL23_GET_SERVER_HELLO: неизвестный протокол"

Я использую модуль node-request , регулярно отправляю GET-запросы на набор URL-адресов и иногда получаю сообщение об ошибке ниже на некоторых сайтах.

Error: 29472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:683

Проблема в том, что я не получаю эту ошибку всегда или всегда на некоторых URL, просто иногда. Кроме того, его нельзя игнорировать с помощью «strictSSL: false».

Я прочитал, что это может быть связано с отправкой запросов SSL с неправильным протоколом (SSLv2, SSLv3, TLS ..). Но это не объясняет, почему это происходит нерегулярно.

Кстати, я запускаю nodejs на сервере Win 2008.

Любая помощь приветствуется.

69
umutm

Это было совсем плохо.

Я использовал стандартный узел http.request для части кода, которая должна отправлять запросы только по http-адресу. Похоже, у БД был один адрес https, который запрашивался со случайным интервалом.

Я просто пытался отправить http запрос на https.

14
umutm

Такое сообщение об ошибке вы получите, когда запросите HTTPS-ресурс через неправильный порт, например 80. Поэтому, пожалуйста, убедитесь, что вы указали правильный порт 443 в параметрах запроса.

105
Gaf King

Некоторые сайты используют SSLv2 или, по крайней мере, отправляют сервер SSLv2-привет, а ваш клиент не говорит или не настроен на использование SSLv2. Вы должны принять политическое решение здесь. SSLv2 должен был исчезнуть с лица земли много лет назад, и сайты, которые все еще используют его, небезопасны. Однако, если вам нужно поговорить с ними, вам просто нужно включить его на своем конце, если можете. Я хотел бы пожаловаться владельцам сайтов, если вы можете.

4
user207421

У меня была эта проблема (ошибка 403 для каждого пакета), и я не нашел ничего хорошего в интернете, чтобы решить эту проблему . Мой файл .npmrc внутри моей папки пользователя был неверным и неправильно понятым. Я изменил эту строку npmrc с

proxy=http://XX.XX.XXX.XXX:XXX/

к:

proxy = XX.XX.XXX.XXX:XXXX
3
Flament Mickaël

Я получил эту ошибку, потому что я использовал require('https'), где я должен был использовать require('http').

2
Ben
var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';
2
user3180229

в моем случае (веб-сайт использует кривые ev) проблема с SSL была решена добавлением этой опции ecdhCurve: 'P-521: P-384: P-256'

request({ url, 
   agentOptions: { ecdhCurve: 'P-521:P-384:P-256', }
}, (err,res,body) => {
...

JFYI, может быть, это кому-то поможет

0
Denisix

Я получил эту ошибку при подключении к Amazon RDS. Я проверил состояние сервера на 50% загрузки ЦП, пока он был сервером разработки, и никто его не использует.

Он работал раньше, и ничего в конфигурации соединения не изменилось ... Перезагрузка сервера устранила проблему для меня.

0
Diaa Kasem

Короче говоря, 

vi ~/.proxy_info

export http_proxy=<username>:<password>@<proxy>:8080
export https_proxy=<username>:<password>@<proxy>:8080

source ~/.proxy_info

Надеюсь, что это помогает кому-то в спешке :)

0
Prateek Mishra