Я использую официальный образ nginx: 1.15.5 со следующими настройками:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256;
Рукопожатие с некоторыми шифрами не удается:
openssl s_client -cipher "$cipher" -connect $SERVER
Тестирование ECDHE-ECDSA-AES128-SHA256 ... NO (сбой подтверждения подтверждения sslv3)
Я подключился к контейнеру nginx и проверил:
openssl ciphers
и упомянутый выше шифр был внутри вывода.
У меня заканчиваются идеи, что может быть причиной того, что рукопожатие с некоторыми шифрами настроено в nginx
и предоставлено openssl
не удается?
Шифрам RSA нужен сертификат с открытым ключом RSA, а шифрам ECDSA нужен сертификат с открытым ключом ECC. Вероятно, у вас есть только сертификат с открытым ключом RSA (все еще наиболее распространенный), и, следовательно, будут работать только шифры RSA, но не шифры ECDSA.