Wyszukiwanie w witrynie

Jak zabezpieczyć Nginx za pomocą Let's Encrypt na CentOS 8


Założona w kwietniu 2016 r. przez Electronic Frontier Foundation (EFF) Let's Encrypt to bezpłatny i zautomatyzowany certyfikat cyfrowy, który zapewnia szyfrowanie TLS witryn internetowych całkowicie bezpłatnie.

Celem certyfikatu Let's Encrypt jest automatyzacja sprawdzania poprawności, tworzenia, podpisywania i automatycznego odnawiania certyfikatu bezpieczeństwa. Certyfikat ten umożliwia szyfrowane połączenia z serwerami internetowymi przy użyciu protokołu HTTPS w prosty, bezproblemowy sposób i bez żadnych komplikacji. Certyfikat jest ważny tylko przez 90 dni, po których można aktywować automatyczne odnawianie.

Zalecana lektura: Jak zabezpieczyć Apache za pomocą certyfikatu Let's Encrypt SSL w CentOS 8

W tym artykule pokażemy, jak zainstalować Let's Encrypt, aby uzyskać bezpłatny certyfikat SSL zabezpieczający serwer WWW Nginx w CentOS 8 ( te same instrukcje działają również na RHEL 8). Wyjaśnimy Ci również, jak automatycznie odnowić certyfikat SSL.

Warunki wstępne

Zanim przejdziemy do sprawdzenia, czy masz następujące elementy pod kontrolą.

1. W pełni kwalifikowana nazwa domeny (FQDN) wskazująca na dedykowany adres IP serwera internetowego. Należy to skonfigurować w obszarze klienta dostawcy usług hostingowych DNS. W tym samouczku używamy nazwy domeny linuxtechwhiz, która wskazuje adres IP 34.70.245.117.

2. Możesz to także potwierdzić, wykonując wyszukiwanie do przodu za pomocą polecenia dig, jak pokazano.

dig linuxtechwhiz.info

3. Nginx zainstalowany i uruchomiony na serwerze internetowym. Możesz to potwierdzić logując się do terminala i uruchamiając poniższe polecenie. Jeśli Nginx nie jest zainstalowany, postępuj zgodnie z naszym artykułem, aby zainstalować Nginx na CentOS 8.

sudo systemctl status nginx

4. Możesz także dokonać weryfikacji, odwiedzając adres URL serwera internetowego w przeglądarce internetowej.

http://server-IP-or-hostname

Z adresu URL wyraźnie wynika, że witryna nie jest bezpieczna, a co za tym idzie, nie jest szyfrowana. Oznacza to, że wszelkie żądania kierowane do serwera WWW mogą zostać przechwycone i obejmują one krytyczne i poufne informacje, takie jak nazwy użytkowników, hasła, numery ubezpieczenia społecznego i dane karty kredytowej, żeby wymienić tylko kilka.

Teraz ubrudzmy sobie ręce i zainstalujmy Let's Encrypt.

Krok 1. Zainstaluj Certbota w CentOS 8

Aby zainstalować certyfikat Let's Encrypt, musisz przede wszystkim mieć zainstalowanego certbota. Jest to rozszerzalny klient, który pobiera certyfikat bezpieczeństwa z Let's Encrypt Authority i pozwala zautomatyzować weryfikację i konfigurację certyfikatu do wykorzystania przez serwer internetowy.

Pobierz certbota za pomocą polecenia curl.

sudo curl -O https://dl.eff.org/certbot-auto

Następnie przenieś certyfikat do katalogu /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Następnie przypisz uprawnienia do pliku certbot, jak pokazano.

chmod 0755 /usr/local/bin/certbot-auto

Krok 2. Skonfiguruj blok serwera Nginx

Blok serwera w Nginx jest odpowiednikiem wirtualnego hosta w Apache. Konfigurowanie bloków serwerów pozwala nie tylko na skonfigurowanie wielu witryn internetowych na jednym serwerze, ale także umożliwia certbotowi udowodnienie własności domeny Urzędowi Certyfikacji – CA.

Aby utworzyć blok serwera, uruchom pokazane polecenie.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Pamiętaj, aby zastąpić nazwę domeny własną nazwą domeny. Następnie wklej poniższą konfigurację.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Zapisz plik i wyjdź z edytora tekstu.

Krok 3: Zainstaluj certyfikat Lets Encrypt na CentOS 8

Teraz użyj polecenia certbot, aby zainicjować pobieranie i konfigurację certyfikatu bezpieczeństwa Let's Encrypt.

sudo /usr/local/bin/certbot-auto --nginx

To polecenie uruchomi i zainstaluje wiele pakietów Pythona i ich zależności, jak pokazano.

Następnie pojawi się interaktywny monit, jak pokazano:

Jeśli wszystko poszło dobrze, na samym końcu powinna pojawić się wiadomość z gratulacjami.

Aby potwierdzić, że Twoja witryna Nginx jest zaszyfrowana, załaduj ją ponownie i zwróć uwagę na symbol kłódki na początku adresu URL. Oznacza to, że witryna jest zabezpieczona szyfrowaniem SSL/TLS.

Aby uzyskać więcej informacji na temat certyfikatu bezpieczeństwa, kliknij symbol kłódki i wybierz opcję „Certyfikat”.

Więcej informacji na temat certyfikatu bezpieczeństwa zostanie wyświetlonych, jak pokazano poniżej.

Dodatkowo, aby przetestować siłę certyfikatu bezpieczeństwa, wejdź na https://www.ssllabs.com/ssltest/ i znajdź dokładniejszą i bardziej dogłębną analizę statusu certyfikatu bezpieczeństwa.

Krok 4. Odnawianie certyfikatu Let’s Encrypt

Jak widzieliśmy wcześniej, certyfikat bezpieczeństwa jest ważny tylko przez 90 dni i należy go odnowić przed wygaśnięciem.

Możesz symulować lub testować proces odnawiania certyfikatu, uruchamiając polecenie:

sudo /usr/local/bin/certbot-auto renew --dry-run

Wniosek

Na tym kończy się samouczek dotyczący zabezpieczania Nginx za pomocą Let's Encrypt w CentOS 8. Let's Encrypt oferuje skuteczny i bezproblemowy sposób zabezpieczenia serwera internetowego Nginx, który w innym przypadku byłby skomplikowanym zadaniem do wykonania ręcznie.

Twoja witryna powinna być teraz w pełni zaszyfrowana. Kilka tygodni przed datą wygaśnięcia certyfikatu EFF powiadomi Cię e-mailem o konieczności odnowienia certyfikatu, aby uniknąć przerw w działaniu wynikających z wygaśnięcia certyfikatu. To wszystko, chłopaki na dziś!