W dzisiejszym świecie szyfrowanie danych to nie tylko kaprys, ale bezpośrednia konieczność. W szczególności szyfrowanie ruchu http ma ogromne znaczenie dla wszystkich stron, na których przetwarzane są dane osobowe. A także w celu ochrony przed atakami mitm.
Tak więc użycie Forward Secrecy na serwerach staje się obowiązkowe dla każdej witryny, która działa z wykorzystaniem protokołu https i poprawia siłę szyfrowania informacji.
Tajemnicę przyszłą można poprawnie skonfigurować w nginx.
Załóżmy, że masz witrynę, która musi obsługiwać https. Przede wszystkim musisz utworzyć klucz Diffiego-Hellmana.
# openssl dhparam -out /etc/nginx/ssl/dh-2048.pem 2048
I ustaw odpowiednie prawa dostępu do niego.
# chmod 0600 /etc/nginx/ssl/dh-2048.pem
Następnie musisz skonfigurować nginx. Oto przykładowa konfiguracja witryny z uruchomionym ssl.
server {nazwa_serwera example.com; słuchaj 80; słuchaj 443 ssl; ssl_certificate /etc/nginx/ssl/example.com_crt.pem; ssl_certificate_key /etc/nginx/ssl/example.com_key.pem; ssl_dhparam ssl / dh-2048.pem; ssl_ciphers ECDH: DH:! ADH :! AECDH :! SEED :! DES :! 3DES:! RC4 :! NULL; ...}
Rozważ każdą zmienną.
ssl_dhparam - ścieżka do pliku z kluczem Diffiego-Hellmana. Możesz określić ścieżkę względem katalogu za pomocą plików konfiguracyjnych nginx.
ssl_ciphers - szyfry używane do połączeń ssl. Mam wybrane szyfry dla prozodii . Minimalna długość klucza wynosi 128 bitów. Wszystkie informacje o utajnieniu do przodu.
Po skonfigurowaniu nginx, uruchom ponownie za pomocą polecenia restartu usługi nginx .
Aby przetestować ustawienia, skorzystaj z https://www.ssllabs.com/ssltest/index.html usługi. W wynikach testu, w akapicie "Szczegóły protokołu", powinien istnieć taki wynik:
A co z kompatybilnością wsteczną?
Polecam ten zestaw: ECDH: DH: EECDH: + AES256: -3DES: RSA + AES: RSA + 3DES:! NULL:! RC4;