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ś!