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_protocols
diretiva:
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 openssl
comandos 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.2
a diretiva, apenas o TLSv1.2 será compatível. 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
.