Как отключить TLSv1.0 и TLSv1.1 в Nginx

Как отключить TLSv1.0 и TLSv1.1 в Nginx

Я пытаюсь выяснить, как отключить TLSv1 и 1.1 Nginx и разрешить соединения ТОЛЬКО на 1.2. Это больше для тестирования, чем для использования в производстве, и я не могу понять, почему Nginx не позволяет мне это сделать.

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

ssl on;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM256:DH+AESGCM256:ECDH+AES256:!aNULL:!MD5:!kEDH;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=262974383; includeSubdomains;";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;

Но по какой-то причине Nginx все еще согласовывает соединения 1.0 и 1.1. Я что-то делаю не так? Я использую Nginx 1.7.10 на Ubuntu Server 14.04LTS с OpenSSL 1.0.1f.

решение1

Издокументация nginxдля ssl_protocolsдирективы:

Параметры TLSv1.1 и TLSv1.2 поддерживаются, начиная с версий 1.1.13 и 1.0.12, поэтому при использовании OpenSSL версии 1.0.1 или выше на старых версиях nginx эти протоколы работают, но их нельзя отключить.

В более новых версиях это можно проверить с помощью opensslследующих команд:

  • Убедитесь, что TLS v1.2 поддерживается:openssl s_client -tls1_2 -connect example.org:443 < /dev/null
  • Убедитесь, что TLS v1.1нетподдерживается:openssl s_client -tls1_1 -connect example.org:443 < /dev/null
  • Убедитесь, что TLS v1.0нетподдерживается:openssl s_client -tls1 -connect example.org:443 < /dev/null

Если конфигурация nginx включает только ssl_protocols TLSv1.2директиву, то поддерживается только TLSv1.2. Если ssl_protocols TLSv1.1 and TLSv1.2настроено, то поддерживаются только TLSv1.1 и TLSv1.2. Протестировано с openssl 1.0.1eи nginx 1.6.2.

Связанный контент