ERR_SSL_PROTOCOL_ERROR только для некоторых пользователей (nodejs, express) - PullRequest
4 голосов
/ 26 мая 2020

Только некоторые (не все) пользователи получают ERR_SSL_PROTOCOL_ERROR в Chrome при попытке посетить мой express сайт. Я не получаю эту ошибку, поэтому ее отлаживать сложно.

Я создаю https-сервер, используя файл PFX, который я загрузил у своего провайдера (1 и 1):

var options = {
  pfx: fs.readFileSync('./mysite_private_key.pfx'),
  passphrase: 'MYPASSPHRASE',
};
https.createServer(options, app).listen(443); 

https://whatsmychaincert.com сообщает мне, что цепочка правильная но жалуется на рукопожатие:

[mysite] имеет правильную цепочку.

[mysite]: ошибка рукопожатия TLS: ошибка: 14077438: подпрограммы SSL: SSL23_GET_SERVER_HELLO: внутренняя ошибка предупреждения tlsv1 SSL Labs может сказать вам, что пошло не так

Я безуспешно искал это в гугле, кто-нибудь знает, в чем может быть проблема? Ty.

Ответы [ 3 ]

1 голос
/ 10 июня 2020

В конце концов, я отказался от 1 и 1 и использовал службу CA GoDaddy, и проблема исчезла.

0 голосов
/ 07 июня 2020

в настоящее время, когда наш сервер (например, 1 и 1) надежно настроен, поддерживаются только tls v1.2 и tls v1.3 ..

Итак, как вы это отлаживаете:

  • просканируйте ваш сайт с помощью SSL Labs Test и посмотрите, какие шифры поддерживаются, или посмотрите в нашем nginx / apache config

  • tail -f журналы сервера, особенно файлы журнала catchall / other_vhosts, так как ошибки протокола ssl могут быть в журналах сайта и общем c журнале catchall, когда сервер не может выбрать имя

  • попробуйте обновить пользователей chrome для поддержки хотя бы tls 1.2

    chrome имеет некоторые переключатели командной строки для изменения поведения шифра:

    • --ssl-version-max Указывает максимальную версию SSL / TLS («tls1.2» или «tls1.3»). ↪
    • --ssl-version-min Задает минимальную версию SSL / TLS («tls1», «tls1.1», «tls1.2» или «tls1. 3 "). ↪

ОПАСНАЯ ЗОНА:

  • в качестве последнего средства вы можете попытаться принять устаревшие шифры в своей nginx -config (ssl_ciphers директиве ) как socat OR (крайнее средство) socat23 , чтобы проверить, какую версию поддерживают ваши клиенты,

не забудьте отключить все ниже tls v1.2 в производственной среде

0 голосов
/ 07 июня 2020

Возможным источником неудачного рукопожатия может быть отсутствие промежуточного сертификата, ca вариант tls.createSecureContext. Его следует опубликовать c на веб-сайте вашего провайдера.

Надеюсь, это поможет.

...