Como desativar TLSv1.0 e TLSv1.1 no Nginx

Como desativar TLSv1.0 e TLSv1.1 no Nginx

Estou tentando descobrir como desabilitar o TLSv1 e o 1.1 Nginx e permitir SOMENTE conexões no 1.2. Isso é mais para fins de teste do que para uso em produção e, por mais que eu não consiga entender por que o Nginx não me deixa fazer isso.

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

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 OpenSSL 1.0.1f.

Responder1

Dedocumentação nginxpara ssl_protocolsdiretiva:

Os parâmetros TLSv1.1 e TLSv1.2 são suportados a partir das versões 1.1.13 e 1.0.12, portanto, quando o OpenSSL versão 1.0.1 ou superior é usado em versões mais antigas do nginx, esses protocolos funcionam, mas não podem ser desabilitados.`

Em versões mais recentes, isso pode ser verificado usando os opensslcomandos a seguir:

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

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

informação relacionada