Рейтинг:0

Невозможно подключиться к сайту через HTTPS (SSL_ERROR_SYSCALL)

флаг cn

У меня есть сервер под управлением Debian 8. Да, довольно старый. Но есть в этом что-то действительно странное. Я не могу подключиться к нему через HTTPS:

$ curl -sSLv https://example.com
* Попытка xx.yyy.xx.yyy:443...
* Подключен к example.com (xx.yyy.xx.yyy), порт 443 (#0)
* ALPN, предлагая h2
* ALPN, предлагающий http/1.1
* CA-файл: /etc/ssl/certs/ca-certificates.crt
* CApath: нет
} [5 байт данных]
* TLSv1.3 (OUT), рукопожатие TLS, приветствие клиента (1):
} [512 байт данных]
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL при подключении к example.com:443 
* Закрытие соединения 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL в связи с example.com:443 

$ sslscan example.com
Версия: 2.0.11
OpenSSL 1.1.1m 14 декабря 2021 г.

Подключено к xx.yyy.xx.yyy

Тестирование SSL-сервера example.com на порту 443 с использованием имени SNI example.com

  Протоколы SSL/TLS:
SSLv2 отключен
SSLv3 отключен
TLSv1.0 отключен
TLSv1.1 отключен
TLSv1.2 отключен
TLSv1.3 отключен

  Резервный SCSV TLS:
Ошибка подключения — не удалось определить поддержку TLS Fallback SCSV

  Повторное согласование TLS:
Повторное согласование сеанса не поддерживается

  TLS-сжатие:
Версия OpenSSL не поддерживает сжатие
Пересборка с пакетом zlib1g-dev для поддержки zlib

  Кровотечение:

  Поддерживаемые серверные шифры:
Информация о сертификате не может быть получена.

$ дпкг -л | grep openssl
ii openssl 1.0.1t-1+deb8u12 amd64 Набор инструментов Secure Sockets Layer — криптографическая утилита

$ cat /etc/nginx/nginx.conf | grep ssl
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Удаление SSLv3, ссылка: POODLE
    ssl_prefer_server_ciphers включен;

$ дпкг -л | grep нгинкс
ii nginx 1.6.2-5 — небольшой, мощный, масштабируемый веб/прокси-сервер
ii nginx-common 1.6.2-5 все небольшие, мощные, масштабируемые веб-/прокси-серверы — общие файлы
ii nginx-full 1.6.2-5 amd64 nginx web/proxy server (стандартная версия)

Чтобы сравнить его с другим сервером Debian 8:

$ sslscan example2.com
Версия: 2.0.11
OpenSSL 1.1.1m 14 декабря 2021 г.

Подключено к хх.ххх.хх.ххх

Тестирование сервера SSL example2.com на порту 443 с использованием имени SNI example2.com

  Протоколы SSL/TLS:
SSLv2 отключен
SSLv3 отключен
TLSv1.0 включен
TLSv1.1 включен
TLSv1.2 включен
TLSv1.3 отключен

  Резервный SCSV TLS:
Сервер поддерживает TLS Fallback SCSV

  Повторное согласование TLS:
Поддерживается безопасное повторное согласование сеанса

  TLS-сжатие:
Версия OpenSSL не поддерживает сжатие
Пересборка с пакетом zlib1g-dev для поддержки zlib

  Кровотечение:
TLSv1.2 не подвержен сердечному кровотечению
TLSv1.1 не подвержен сердечному кровотечению
TLSv1.0 не подвержен сердечному кровотечению

  Поддерживаемые серверные шифры:
Предпочтительный TLSv1.2 256 бит ECDHE-RSA-AES256-GCM-SHA384 Кривая P-256 DHE 256
Принимается TLSv1.2 256 бит ECDHE-RSA-AES256-SHA384 Кривая P-256 DHE 256
Принимается TLSv1.2 256 бит ECDHE-RSA-AES256-SHA Curve P-256 DHE 256
Принимается TLSv1.2 256 бит DHE-RSA-AES256-GCM-SHA384 DHE 1024 бита
Принимается TLSv1.2 256 бит DHE-RSA-AES256-SHA256 DHE 1024 бита
Принимается TLSv1.2 256 бит DHE-RSA-AES256-SHA DHE 1024 бита
Принимается TLSv1.2 256 бит DHE-RSA-CAMELLIA256-SHA DHE 1024 бита
Принимается TLSv1.2 256 бит AES256-GCM-SHA384            
Принимается TLSv1.2 256 бит AES256-SHA256                
Принимается TLSv1.2 256 бит AES256-SHA                   
Принимается TLSv1.2 256 бит CAMELLIA256-SHA              
Принимается TLSv1.2 128 бит ECDHE-RSA-AES128-GCM-SHA256 Кривая P-256 DHE 256
Принимается TLSv1.2 128 бит ECDHE-RSA-AES128-SHA256 Кривая P-256 DHE 256
Принимается TLSv1.2 128 бит ECDHE-RSA-AES128-SHA Curve P-256 DHE 256
Принимается TLSv1.2 128 бит DHE-RSA-AES128-GCM-SHA256 DHE 1024 бита
Принимается TLSv1.2 128 бит DHE-RSA-AES128-SHA256 DHE 1024 бита
Принимается TLSv1.2 128 бит DHE-RSA-AES128-SHA DHE 1024 бита
Принимается TLSv1.2 128 бит DHE-RSA-CAMELLIA128-SHA DHE 1024 бита
Принимается TLSv1.2 128 бит AES128-GCM-SHA256            
Принимается TLSv1.2 128 бит AES128-SHA256                
Принимается TLSv1.2 128 бит AES128-SHA                   
Принимается TLSv1.2 128 бит CAMELLIA128-SHA              
Предпочтительный TLSv1.1 256 бит ECDHE-RSA-AES256-SHA Curve P-256 DHE 256
Принимается TLSv1.1 256 бит DHE-RSA-AES256-SHA DHE 1024 бита
Принимается TLSv1.1 256 бит DHE-RSA-CAMELLIA256-SHA DHE 1024 бита
Принимается TLSv1.1 256 бит AES256-SHA                   
Принимается TLSv1.1 256 бит CAMELLIA256-SHA              
Принимается TLSv1.1 128 бит ECDHE-RSA-AES128-SHA Curve P-256 DHE 256
Принимается TLSv1.1 128 бит DHE-RSA-AES128-SHA DHE 1024 бита
Принимается TLSv1.1 128 бит DHE-RSA-CAMELLIA128-SHA DHE 1024 бита
Принимается TLSv1.1 128 бит AES128-SHA                   
Принимается TLSv1.1 128 бит CAMELLIA128-SHA              
Предпочтительный TLSv1.0 256 бит ECDHE-RSA-AES256-SHA Curve P-256 DHE 256
Принимается TLSv1.0 256 бит DHE-RSA-AES256-SHA DHE 1024 бита
Принимается TLSv1.0 256 бит DHE-RSA-CAMELLIA256-SHA DHE 1024 бита
Принимается TLSv1.0 256 бит AES256-SHA                   
Принимается TLSv1.0 256 бит CAMELLIA256-SHA              
Принимается TLSv1.0 128 бит ECDHE-RSA-AES128-SHA Curve P-256 DHE 256
Принимается TLSv1.0 128 бит DHE-RSA-AES128-SHA DHE 1024 бита
Принимается TLSv1.0 128 бит DHE-RSA-CAMELLIA128-SHA DHE 1024 бита
Принимается TLSv1.0 128 бит AES128-SHA                   
Принимается TLSv1.0 128 бит CAMELLIA128-SHA              

  Группы обмена ключами сервера:
TLSv1.2 128 бит secp256r1 (NIST P-256)

  SSL-сертификат:
Алгоритм подписи: sha256WithRSAEncryption
Сила ключа RSA: 4096

Тема: example2.com
Альтернативные имена: DNS:example2.com
Эмитент: R3

Недействительно до: 17 декабря 21:00:13 2021 GMT
Не действует после: 17 марта 21:00:12 2022 GMT

$ дпкг -л | grep openssl
ii openssl 1.0.1k-3+deb8u2 amd64 Набор инструментов Secure Sockets Layer — криптографическая утилита

$ cat /etc/nginx/nginx.conf | grep ssl
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Удаление SSLv3, ссылка: POODLE
    ssl_prefer_server_ciphers включен;

$ дпкг -л | grep нгинкс
ii nginx 1.6.2-5 — небольшой, мощный, масштабируемый веб/прокси-сервер
ii nginx-common 1.6.2-5 все небольшие, мощные, масштабируемые веб-/прокси-серверы — общие файлы
ii nginx-full 1.6.2-5 amd64 nginx web/proxy server (стандартная версия)

Что не так с первым сервером? Как заставить работать https?

флаг cn
Bob
На первый взгляд вы показываете только внешние наблюдения, но не показываете, как должен быть сконфигурирован сервер.
Paul avatar
флаг cn
Пожалуйста, опубликуйте полную конфигурацию nginx.
флаг cn
@Paul https://gist.github.com/x-yuri/3c3a58bdd6d52b6816192eda6c6c9c91 На первый взгляд ничего необычного. И я не совсем уверен, что проблема в nginx.
флаг cn
@Bob Боб, я не уверен, что проблема в `nginx`, но см. ссылку выше.
Рейтинг:2
флаг cn

Один из серверов (с точки зрения нгинкс) имел слушать 443 SSL, но нет ssl_* директивы. При таких обстоятельствах вы получаете симптомы, описанные в вопросе. То есть проблема с одним сервером (виртуальным хостом) влияла на другой (остальные).

В журнале ошибок неисправного сервера вы увидите:

12.01.2022, 02:44:46 [ошибка] 445#0: *23 "ssl_certificate" не определен на сервере, прослушивающем порт SSL во время квитирования SSL, клиент: xx.xxx.xx.xxx, сервер: 0.0.0.0 :443

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.