Тестирование HTTPS игнорирует шифрование DHE

Я настраиваю nginx (v1.16.1, OpenSSL 1.1.1) для использования https. Я использую сертификат letsencrypt - SHA-256 с шифрованием RSA. Использую TLSv1.2, тестирую на ssllabs и observatory. Предписанное шифрование следующая строка

ssl_ciphers DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-AES128-GCM-SHA256;

Я проверяю и получаю, что обнаружен только ECDHE . Я пробовал различные комбинации.

ecdhe

Проблема в том, что мне нужно шифрование для правильной работы с IE11 в версиях Win 7 и Win 8.1, и при тестировании я получаю сообщение об ошибке

«Сервер отправил фатальное предупреждение: handshake_failure»

Если в тех же ssllabs я вижу поддерживаемые сертификаты для IE11 Win7, тогда указывается поддержка, которую я пытаюсь использовать.

LS_DHE_RSA_WITH_AES_256_GCM_SHA384

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 все в порядке, но все остальные методы шифрования СЛАБЫЕ.

OpenSSL поддерживает этот тип шифра

$ openssl ciphers -v | grep DHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128)    Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD

Конфигурация:

server {
listen            443 ssl http2;
server_name       test.ru;

ssl_protocols           TLSv1.2;
ssl_certificate         /etc/nginx/conf.d/ssl/fullchain.pem;
ssl_certificate_key     /etc/nginx/conf.d/ssl/privkey.pem;
ssl_ciphers DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000" always;

location / {
        proxy_pass            http://192.168.1.2;
        proxy_redirect        off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_ssl_server_name on;
        proxy_ssl_name test.ru;
        proxy_set_header Host $http_host;
        proxy_pass_header Set-Cookie;
}

В чем может быть причина?

0
задан 28 October 2019 в 12:05
1 ответ

Необходимо установить ssl_dhparam (см. https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_dhparam), чтобы шифры DHE работали над nginx.

Кавычка из документации:

По умолчанию никакие параметры не устанавливаются, и поэтому шифры DHE не будут использоваться.

1
ответ дан 4 December 2019 в 15:35

Теги

Похожие вопросы