У меня есть сервер под управлением 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?