ERR_SSL_PROTOCOL_ERROR только для некоторых пользователей (nodejs, express)

голоса
2

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

Я создаю 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] имеет правильную цепочку.

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

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

Задан 26/05/2020 в 13:46
источник пользователем
На других языках...                            


2 ответов

голоса
0

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

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

Ответил 07/06/2020 в 01:10
источник пользователем

голоса
0

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

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

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

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

  • попробуйте обновить пользовательский хром, чтобы он поддерживал как минимум tls 1.2

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

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

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

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

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

Ответил 07/06/2020 в 15:57
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more