Como ativar o TLS 1.2 no Nginx?

16

Como eu habilito o TLS 1.1 e 1.2 para conexões SSL no meu servidor Ubuntu 12.04? Estou usando a seguinte versão da biblioteca nginx e openssl.

$ ./nginx -v
nginx version: nginx/1.2.3

$ openssl version -a
OpenSSL 1.0.1 14 Mar 2012
built on: Tue Jun  4 07:26:06 UTC 2013
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"
    
por codefx 12.07.2013 / 10:01

3 respostas

13

Primeiro, você precisa ativar o SSL / TLS no seu nginx.conf :

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.org;

    ssl_certificate /etc/ssl/example.org.crt;
    ssl_certificate_key /etc/ssl/private/example.org.key;

As duas linhas listen permitem o SSL na sua conexão IPv4 e IPv6. Se você não tiver IPv6, poderá deixar de fora a segunda linha listen .

Suponho que o certificado do seu servidor esteja em /etc/ssl . Se você usar outro caminho, você mudaria as duas últimas linhas.

ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

Isso permite diferentes versões do TLS. Todos os navegadores atuais podem usar o TLS1.2. Para navegadores mais antigos, eu escrevi um pequeno recurso para ativar as configurações de segurança .

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

A primeira linha define as cifras que o seu nignx deve usar. A segunda linha prefere os conjuntos de criptografia no lado do servidor (e não do cliente). Então você pode usar cifras strongs (er).

Se você terminou, seu nginx deve usar o TLS1.2. Se desejar, você pode adicionar seu site a um TLS1.2 hall of fame e tenha orgulho. ;)

No entanto, existem vários métodos para melhorar as configurações. Eu sigo este guia alemão para configuração segura do nginx .

    
por qbi 15.02.2014 / 00:15
1

Existem vários avisos de segurança que foram abordados em versões subsequentes do nginx. Se você ainda estiver (6 meses poste?) Nessa situação, considere seriamente a atualização; As configurações de TLS não importarão se o próprio servidor da Web estiver inseguro. Consulte o link para obter detalhes.

Se, por algum motivo, você DEVE executar esta versão do nginx, as informações disponíveis sobre a ativação de conjuntos de criptografia strongs com nginx (ou Apache) provavelmente ajudarão: link

    
por Luno 16.01.2014 / 20:40
0
  

Como habilitar o TLS 1.1 e 1.2 para conexões SSL no meu servidor Ubuntu 12.04?

Eu acredito que existem três opções.

Primeiro, não faça nada e use a versão do OpenSSL do Ubuntu 12. Acredito que o TLS 1.1 agora é suportado, mas você ainda não terá o TLS 1.2.

Em segundo lugar, crie e mantenha seu próprio PPA . Existem algumas instruções para fazê-lo em Override Distro Package com Custom Package? completude, não existem arquivos Personal Package Archives for Ubuntu e OpenSSL que ofereçam os protocolos completos.

Terceiro é atualizar para uma versão posterior do Ubuntu, como o Ubuntu 14. Estou tentando determinar se o Ubuntu 14 habilita todos eles no momento. Veja Protocolos do Ubuntu 14, OpenSSL e TLS? .

    
por user207039 28.03.2014 / 04:35

Tags