Bezpieczne strony internetowe Nginx HTTPS dzięki Let's Encrypt Free SSL / TLS na Ubuntu 16.04 | 18.04

  • Yurii Anneticus
  • 0
  • 1821
  • 182

Let's Encrypt to bezpłatny i otwarty ośrodek certyfikacji (CA) opracowany przez Internet Security Research Group (ISRG)… Jest obsługiwany przez wiele dużych organizacji, w tym Google, Microsoft i kilka innych.

Jeśli chcesz, aby bezpłatny certyfikat SSL / TLS zabezpieczył ruch w Twojej witrynie przez HTTPS, to jesteś na właściwej stronie… Poniższe kroki pomogą Ci uzyskać i skonfigurować Let's Encrypt bezpłatne certyfikaty SSL na serwerze HTTP Nginx…

Dzięki tym ustawieniom możesz użyć protokołu HTTPS do zabezpieczenia ruchu w domenie i witrynie…

Ten krótki samouczek pokazuje studentom i nowym użytkownikom, jak sprawić, aby serwer HTTP Nginx współpracował z Let's Encrypt CA w systemie Ubuntu 16.04 | 18.04 Serwery LTS…

Kiedy będziesz gotowy, wykonaj poniższe czynności:

Krok 0: Uzyskaj nazwę domeny

Let's Encrypt współpracuje z prawidłową domeną i działającym serwerem, na który wskazuje domena… Ta konfiguracja zakłada, że ​​nazwa Twojej domeny nosi nazwę example.com i wskazuje na Twój serwer o adresie IP 192.168.1.2

Nie zapomnij też się upewnić www CNAME wskazuje na nazwę domeny…. Powinien wyglądać jak coś poniżej:

example.com A ==========> 192.168.1.2 www CNAME ==========> example.com 

Krok 1: Zainstaluj serwer HTTP Nginx

Teraz, gdy masz już prawidłową domenę i wskazujesz prawidłowy adres IP serwera, przejdź poniżej do konfigurowania Let's Encrypt… .

Najpierw zainstaluj serwer Nginx… Aby to zrobić, uruchom poniższe polecenia:

sudo apt update sudo apt install nginx

Po zainstalowaniu Nginx poniższe polecenia mogą być używane do zatrzymywania, uruchamiania i włączania usługi Nginx, aby zawsze uruchamiała się wraz z uruchomieniem serwera.

sudo systemctl stop nginx.service sudo systemctl start nginx.service sudo systemctl włącz nginx.service 

Aby przetestować konfigurację Nginx, otwórz przeglądarkę i przejdź do nazwy hosta serwera lub adresu IP. Powinieneś zobaczyć domyślną stronę testową Nginx, jak pokazano poniżej… .

Kiedy to widzisz, oznacza to, że Nginx działa zgodnie z oczekiwaniami…

http: // localhost

Krok 2: Skonfiguruj Nginx w swojej domenie

Teraz, gdy Nginx jest zainstalowany, przejdź i skonfiguruj go ze swoją domeną, aby gdy użytkownicy wpisali nazwę Twojej domeny, serwer Nginx powinien odpowiedzieć…

Aby to zrobić, utwórz podstawowy plik HTML w katalogu głównym Nginx z przykładową zawartością poniżej:

sudo mkdir /var/www/html/example.com

Następnie wewnątrz example.com folder, utwórz plik z poniższą zawartością:

sudo nano /var/www/html/example.com/index.html

Skopiuj poniższą zawartość do pliku i zapisz…

   Strona testowa Example.com   

Sukces! Example.com działa

zapisz plik i zakończ.

Następnie uruchom poniższe polecenia, aby dać użytkownikowi Nginx dostęp do katalogu…

sudo chown -R www-data: /var/www/html/example.com

Gdy skończysz, utwórz blok serwera Nginx dla domeny example.com… Aby to zrobić, uruchom poniższe polecenia, aby utworzyć nowy plik konfiguracyjny dla domeny example.com…

sudo nano /etc/nginx/sites-available/example.com

Następnie skopiuj i zapisz poniższą zawartość w pliku i zapisz…

serwer nasłuchuj 80; słuchaj [::]: 80; nazwa_serwera example.com www.example.com; root /var/www/html/example.com/index.html; index.html; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; lokalizacja / try_files $ uri $ uri / = 404; 

Zapisz plik i zakończ

Teraz plik konfiguracyjny example.com jest tworzony, uruchom poniższe polecenia, aby go włączyć…

sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled /

Witryna powinna być teraz włączona i gotowa do użycia…

Krok 3: Zainstaluj i skonfiguruj Let's Encrypt

Teraz, gdy nasza witryna Nginx jest włączona i gotowa do użycia, uruchom poniższe polecenia, aby zainstalować i skonfigurować Let's Encrypt, aby zabezpieczyć witrynę Nginx…

Pierwsza instalacja Certbot… Certbot to w pełni funkcjonalne i łatwe w użyciu narzędzie, które może zautomatyzować zadania związane z uzyskiwaniem i odnawianiem certyfikatów SSL Let's Encrypt…

Aby go zainstalować, uruchom poniższe polecenia:

sudo apt install certbot

Po zainstalowaniu Certbota utwórz plik dla Let's Encrypt do wtyczki Webroot, aby zweryfikować naszą domenę w $ webroot-path /. well-known / acme-challenge informator… .

Aby to zrobić, utwórz katalog i daj do niego dostęp Nginx…

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data / var / lib / letsencrypt sudo chmod g + s / var / lib / letsencrypt

Następnie utwórz dobrze znany plik wyzwania z poniższymi konfiguracjami…

sudo nano /etc/nginx/snippets/well-known.conf

Następnie skopiuj i wklej poniższą zawartość do pliku i zapisz…

lokalizacja ^ ~ /.well-known/acme-challenge/ pozwól wszystkim; root / var / lib / letsencrypt /; default_type "tekst / zwykły"; try_files $ uri = 404; 

Zapisz plik i zakończ

Krok 4: Uzyskaj bezpłatny certyfikat

W tym momencie Twoja domena powinna wskazywać adres IP Twojego serwera… Serwer HTTP Nginx został zainstalowany i skonfigurowany, a Certbot jest gotowy do uzyskania certyfikatu…

Przed poproszeniem o bezpłatny certyfikat otwórz plik konfiguracyjny Nginx example.com utworzony powyżej… .

sudo nano /etc/nginx/sites-available/example.com

Po otwarciu pliku dodaj rozszerzenie podświetlony poniżej do pliku i zapisz…

serwer nasłuchuj 80; słuchaj [::]: 80; nazwa_serwera example.com www.example.com; root /var/www/html/example.com/index.html; index.html; dołącz fragmenty / dobrze znane.conf; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; lokalizacja / try_files $ uri $ uri / = 404; 

Zapisz plik i zakończ

Zrestartuj serwer HTTP Nginx…

sudo nginx -t sudo systemctl zrestartuj nginx 

W tym momencie wszystko jest ustawione i jesteś gotowy do uzyskania certyfikatu… Aby to zrobić, uruchom poniższe polecenia:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w / var / lib / letsencrypt / -d example.com -d www.example.com

Let's Encrypt powinno się połączyć, zweryfikować domenę i serwer, a następnie zainstalować certyfikat domeny… Jeśli wszystko się powiedzie, powinien pojawić się podobny komunikat jak poniżej:

WAŻNE UWAGI: - Gratulacje! Twój certyfikat i łańcuch zostały zapisane pod adresem: /etc/letsencrypt/live/example.com/fullchain.pem Twój plik klucza został zapisany pod adresem: /etc/letsencrypt/live/example.com/privkey.pem Twój certyfikat wygaśnie w dniu 2018-08-18. Aby w przyszłości uzyskać nową lub ulepszoną wersję tego certyfikatu, po prostu ponownie uruchom certbot. Aby w sposób nieinteraktywny odnowić * wszystkie * swoje certyfikaty, uruchom „certbot renew” - Jeśli podoba Ci się Certbot, rozważ wsparcie naszej pracy poprzez: Darowizna dla ISRG / Let's Encrypt: https://letsencrypt.org/donate Darowizna dla EFF: https://eff.org/donate-le 

W tym momencie masz certyfikat, teraz przejdź i dodaj go do konfiguracji Nginx dla domeny example.com…

Najpierw wygenerujmy certyfikat wymiany kluczy Diffiego-Hellmana (DH), aby bezpiecznie wymieniać klucze kryptograficzne… Aby to zrobić, uruchom poniższe polecenia, aby wygenerować certyfikat z 2048 bitami…

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Następnie otwórz plik konfiguracyjny example.com i spraw, aby wyglądał podobnie do poniższego:

sudo nano /etc/nginx/sites-available/example.com

Skonfiguruj plik tak, aby wyglądał podobnie do poniższego

serwer nasłuchuj 80; nazwa_serwera www.example.com example.com; return 301 https: // $ host $ request_uri; dołącz fragmenty / dobrze znane.conf;  serwer nasłuchiwanie 443 ssl http2; nasłuchuj [::]: 443 ssl http2; nazwa_serwera example.com www.example.com; root /var/www/html/example.com; index.html; if ($ host! = "example.com") return 301 https: //example.com$request_uri;  dołącz fragmenty / dobrze znane.conf; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; ssl_dhparam /etc/ssl/certs/dhparam.pem; sl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-AES-SHDS RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256: ECDSDHES -128- SHA: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA: ECDHE-RSA-AES256-SHA: DHE128-RSA-AES: DHE128-RSA-AES DHE-RSA-AES128-SHA: DHE-RSA-AES256-SHA256: DHE-RSA-AES256-SHA: ECDHE-ECDSA-DES-CBC3-SHA: ECDHE-RSA-DES-CBC3-SHA: EDH-RSA-DES- CBC3-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES256-SHA: DES-CBC3-SHA:! DSS '; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; przelicznik 8.8.8.8 8.8.4.4 ważny = 300s; resolver_timeout 30s; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; lokalizacja / try_files $ uri $ uri / = 404; 

Zapisz zmiany powyżej i uruchom ponownie Nginx, aby powyższe ustawienia zaczęły obowiązywać…

sudo systemctl zrestartuj nginx

Aby skonfigurować proces automatycznego odnawiania certyfikatów, dodaj zadanie cron, aby wykonać proces odnawiania.

sudo crontab -e

Następnie dodaj poniższą linię i zapisz.

0 1 * * * / usr / bin / certbot odnowienie &> / dev / null

Zadanie cron podejmie próbę odnowienia 30 dni przed wygaśnięciem

Aby przetestować proces odnawiania, możesz użyć certbot -dry-run przełącznik:

sudo certbot odnowić --dry-run

Otóż ​​to! Gratulacje! Pomyślnie skonfigurowałeś Nginx dla Let's Encrypt free SSL / TLS na Ubuntu 16.04 | 18.04




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