Jak zabezpieczyć strony internetowe Nginx za pomocą SSL / TLS w systemie Ubuntu 17.04

  • Richard Poole
  • 0
  • 3067
  • 440

SSL (Secure Sockets Layer) i TLS (Transport Layer Security) to protokoły do ​​zabezpieczania komunikacji między dwoma lub wieloma urządzeniami / usługami i witrynami sieciowymi. Są to najczęściej używane protokoły umożliwiające bezpieczną komunikację między przeglądarką internetową a serwerem WWW.

Ten krótki samouczek pokaże Ci, jak włączyć SSL / TLS w witrynach opartych na Nginx, aby zabezpieczyć komunikację. Jeśli wykonasz poniższe kroki, ruch przychodzący do Twoich witryn będzie również odbywał się przez HTTPS.

Aby rozpocząć włączanie konfiguracji SSL / TLS dla Nginx, wykonaj poniższe czynności:

Krok 1: Wygeneruj klucz prywatny serwera i CRS

Pierwszym krokiem w tworzeniu certyfikatów SSL / TLS jest wygenerowanie klucza prywatnego serwera oraz CSR (Certificate Signing Request). CSR jest następnie używany wraz z kluczem prywatnym lokacji / serwera do wygenerowania certyfikatu publicznego dla zabezpieczanego zasobu.

Najpierw utwórzmy folder do przechowywania certyfikatów i CSR.

sudo mkdir / etc / nginx / ssl cd / etc / nginx / ssl

Następnie uruchom poniższe polecenia, aby utworzyć klucz prywatny witryny lub serwera. Będziemy używać znacznie silniejszego 4096-bitowego klucza, aby zwiększyć bezpieczeństwo.

sudo openssl genrsa -out example.com.key 4096

Po wygenerowaniu klucza prywatnego lokacji / serwera przejdźmy poniżej do wygenerowania CSR. W tym celu będziemy również używać znacznie silniejszego 512-bitowego algorytmu SHA-2.

Aby wygenerować CSR, uruchom poniższe polecenia

sudo openssl req -new -key example.com.key -out example.com.csr -sha512

Po uruchomieniu powyższych poleceń zostanie wyświetlony monit z listą pól, które należy wypełnić. Pole nazwy zwyczajowej jest najważniejsze i powinno być nazwą witryny, którą chronisz.

Za chwilę zostaniesz poproszony o wprowadzenie informacji, które zostaną uwzględnione we wniosku o certyfikat. To, co zamierzasz wprowadzić, to tak zwana nazwa wyróżniająca lub nazwa wyróżniająca. Jest kilka pól, ale możesz zostawić je puste. W przypadku niektórych pól będzie wartość domyślna. Jeśli wpiszesz „.”, Pole pozostanie puste. ----- Nazwa kraju (dwuliterowy kod) [AU]: Nazwa stanu lub prowincji w USA (pełna nazwa) [Niektóre-stan]: Nazwa miejscowości Minnesota (np. Miasto) []: Nazwa organizacji Brooklyn (np. Firma) [Internet Widgits Pty Ltd]: Nazwa jednostki organizacyjnej mojego osobistego bloga (np. Sekcja) []: Nazwa zwyczajowa jednostki SSL (np. Nazwa FQDN serwera lub TWOJA nazwa) []: example.com Adres e-mail []: Wprowadź następujące „dodatkowe 'atrybuty, które mają być wysłane wraz z żądaniem certyfikatu Hasło weryfikacyjne []: NIE WPISUJ TUTAJ HASŁA, POZOSTAWIĆ PUSTE Opcjonalna nazwa firmy []:

Po utworzeniu CSR kontynuuj poniżej, aby podpisać certyfikat.

Krok 2: Podpisz certyfikat

Po wygenerowaniu klucza prywatnego serwera / witryny i CSR, ostatnim krokiem jest podpisanie certyfikatu przy użyciu klucza prywatnego serwera / witryny wraz z CSR. W tym celu uruchomimy poniższe polecenia, aby podpisać certyfikat, aby był ważny przez 365 dni.

Należy odnowić po roku.

sudo openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -sha512

Następnie nowy certyfikat o nazwie example.com.crt powinien być gotowy do użycia. Teraz wszystko, co musisz zrobić, to określić pliki certyfikatów w konfiguracjach Nginx.

# Serwer serwera HTTPS nasłuchiwanie 443 ssl default_server; słuchaj [::]: 443 ssl domyślny_serwer; nazwa_serwera example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-SHA384: DHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-SHA256: ECDHE-RSA-AES128-GCM: ECDHE-RSA-AES128-G625 -AES128-SHA256: DHE-RSA-AES128-SHA256: ECDHE-RSA-AES256-SHA:! ANULL:! ENULL:! EKSPORT:! DES:! 3DES:! MD5:! PSK:! RC4; lokalizacja / root / var / www / html; index index.html index.htm; 

Zrestartuj serwer WWW Nginx i gotowe.

sudo systemctl przeładuj nginx.service

Podsumowanie:

Ten post pokazuje, jak wygenerować samopodpisany certyfikat SSL / TLS dla witryn internetowych w systemie Ubuntu 17.04. Powinno to również działać w poprzedniej wersji Ubuntu i innych dystrybucjach Linuksa.

Gdy wszystko zostanie skonfigurowane, jak pokazano powyżej, Twoja witryna będzie mogła komunikować się zarówno przez HTTPS, jak i HTTP. Musisz włączyć przekierowanie HTTP do HTTPS, aby wymusić na całym ruchu korzystanie z HTTPS. Przeszukaj tę witrynę pod kątem samouczków dotyczących ustawiania przekierowań Nginx.




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux