Jak włączyć TLS 1.2 w Nginx?

17

Jak włączyć TLS 1.1 i 1.2 dla połączeń SSL na moim serwerze Ubuntu 12.04? Korzystam z następującej wersji biblioteki nginx i 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"
codefx
źródło
Znalazłeś już coś?
BigSack,
Rozwiązałeś to? Używana wersja nginx jest bardzo stara. Przydatna może być konfiguracja SSL w tym artykule Ars Technica .
Paul

Odpowiedzi:

14

Najpierw musisz aktywować SSL / TLS w 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;

Dwie listenlinie obsługują protokół SSL w połączeniu IPv4 i IPv6. Jeśli nie masz IPv6, możesz pominąć drugą listenlinię.

Zakładam, że masz certyfikat serwera /etc/ssl. Jeśli użyjesz innej ścieżki, zmień dwie ostatnie linie.

ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

Umożliwia to różne wersje TLS. Wszystkie obecne przeglądarki mogą korzystać z TLS1.2. Dla starszych przeglądarek napisałem małe jak włączyć bezpieczne ustawienia .

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;

Pierwszy wiersz ustawia szyfry, których powinien używać twój nignx. Druga linia preferuje zestawy szyfrów po stronie serwera (a nie klienta). Możesz więc używać silnych (er) szyfrów.

Jeśli skończysz, twój nginx powinien użyć TLS1.2. Jeśli chcesz, możesz dodać swoją stronę do galerii sław TLS1.2 i być dumnym. ;)

Istnieje jednak kilka metod poprawy ustawień. Postępuję zgodnie z tym niemieckim przewodnikiem dotyczącym bezpiecznej konfiguracji Nginx .

qbi
źródło
Ubuntu 12 wyłącza TLS 1.1 i TLS 1.2 z przyczyn interop. Myślę, że ostatnio włączyli TLS 1.1, ale uważam, że wciąż brakuje TLS 1.2. Zobacz niższa wersja OpenSSL to 1.0.0 i nie obsługuje TLS 1.2 .
1

Istnieje wiele porad dotyczących bezpieczeństwa, które zostały rozwiązane w kolejnych wersjach nginx. Jeśli nadal jesteś (6 miesięcy nieaktualny?), Poważnie zastanów się nad aktualizacją; Ustawienia TLS nie będą miały znaczenia, jeśli sam serwer WWW jest niepewny. Szczegółowe informacje można znaleźć na stronie http://nginx.org/en/security_advisories.html .

Jeśli z jakiegoś powodu MUSISZ uruchomić tę wersję nginx, informacje dostępne na temat włączania silnych zestawów szyfrów w nginx (lub Apache) tutaj prawdopodobnie pomogą: https://community.qualys.com/blogs/securitylabs/2013/08/ 05 / configuring-apache-nginx-and-openssl-for-forward-secretrecy

Luno
źródło
0

Jak włączyć TLS 1.1 i 1.2 dla połączeń SSL na moim serwerze Ubuntu 12.04?

Wierzę, że są trzy możliwości.

Po pierwsze, nic nie rób i korzystaj z wersji OpenSSL Ubuntu 12. Uważam, że TLS 1.1 jest teraz obsługiwany, ale nadal nie będziesz mieć TLS 1.2.

Po drugie, zbuduj i utrzymuj własne PPA . Czy są takie instrukcje w Override Distro Package with Custom Package? Dla kompletności nie istnieją żadne osobiste archiwa pakietów dla Ubuntu i OpenSSL, które oferowałyby pełne protokoły.

Trzecia to aktualizacja do nowszej wersji Ubuntu, takiej jak Ubuntu 14. Próbuję ustalić, czy Ubuntu 14 włącza je wszystkie w tym momencie. Zobacz protokoły Ubuntu 14, OpenSSL i TLS? .

Społeczność
źródło