Como desabilitar TLSv1.0 e TLSv1.1 no Nginx

4

Estou tentando descobrir como desabilitar o TLSv1 e o 1.1 Nginx e SOMENTE permitir conexões no 1.2. Isto é por razões de teste mais do que no uso de produção e para a vida de mim não consigo descobrir porque o Nginx não me deixa fazer isso.

Configuração SSL do 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;

Mas, por alguma razão, o Nginx ainda negocia conexões 1.0 e 1.1. Estou fazendo algo errado? Estou usando o Nginx 1.7.10 no Ubuntu Server 14.04LTS com o OpenSSL 1.0.1f.

    
por Lost 27.02.2015 / 20:59

1 resposta

2

Na documentação do nginx para a diretiva ssl_protocols :

The TLSv1.1 and TLSv1.2 parameters are supported starting from versions 1.1.13 and 1.0.12, so when the OpenSSL version 1.0.1 or higher is used on older nginx versions, these protocols work, but cannot be disabled.'

Em versões mais recentes, isso pode ser verificado usando os comandos openssl da seguinte forma:

  • Verifique se o TLS v1.2 é suportado: openssl s_client -tls1_2 -connect example.org:443 < /dev/null
  • Verifique se o TLS v1.1 não é suportado: openssl s_client -tls1_1 -connect example.org:443 < /dev/null
  • Verifique se o TLS v1.0 não é suportado : openssl s_client -tls1 -connect example.org:443 < /dev/null

Se a configuração do nginx incluir apenas a diretiva ssl_protocols TLSv1.2 , somente o TLSv1.2 será suportado. Se ssl_protocols TLSv1.1 and TLSv1.2 estiver configurado, apenas TLSv1.1 e TLSv1.2 serão suportados. Testado com openssl 1.0.1e e nginx 1.6.2 .

    
por 27.02.2015 / 21:08