Jak zabezpieczyć Nginx za pomocą Let's Encrypt on Ubuntu i Debian

- 2252
- 324
- Tacjana Karpiński
Po poprzednich Zaszypujmy Samouczek dotyczący Apache SSL, W tym artykule omówimy sposób generowania i zainstalowania bezpłatnego certyfikatu SSL/TLS wydanego przez Szyfrujmy CA Do Nginx Webserver on Ubuntu Lub Debian.
Przeczytaj także
- Bezpieczne Apache z darmowym zaszyfrowaniem Let na Ubuntu i Debian
- Zainstaluj Let's Encrypt SSL, aby zabezpieczyć Apache na RHEL i CENTOS
Testowanie przykładowego środowiska

Wymagania
- Zarejestrowana domena z ważnym DNS
A
rejestry, aby wskazać adres IP twojego serwera. - Zainstalowany serwer WWW Nginx z włączonym SSL i VHost, na wypadek, gdybyś planował hostować wiele domen lub subdomenów.
Krok 1: Instalowanie serwera WWW Nginx
1. Na pierwszym etapie zainstaluj serwer WWW Nginx, jeśli już nie został zainstalowany, wydając poniższe polecenie:
$ sudo apt-get instaluj nginx

Krok 2: Wygeneruj certyfikat Let's Encrypt SSL dla Nginx
2. Przed wygenerowaniem bezpłatnego certyfikatu SSL/TLS zainstaluj Zaszypujmy oprogramowanie w /usr/lokalny/
hierarchia systemu plików za pomocą git Klient, wydając poniższe polecenia:
$ sudo apt -get -y instalacja git $ cd/usr/local/$ sudo git klon https: // github.com/LetsEncrypt/LetsEncrypt
3. Chociaż procedura uzyskania certyfikatu dla Nginx jest zautomatyzowany, nadal możesz ręcznie tworzyć i zainstalować bezpłatny certyfikat SSL dla Nginx za pomocą wtyczki Let's Encrypt.
Ta metoda wymaga tego portu 80 Nie wolno być używane w systemie przez krótki czas, podczas gdy Let's Encrypt Client sprawdza tożsamość serwera przed wygenerowaniem certyfikatu.
W przypadku, gdy już uruchamiasz Nginx, zatrzymaj usługę, wydając następujące polecenie.
$ sudo service nginx stop lub $ sudo systemctl stop nginx
W przypadku uruchomienia innej usługi, która wiąże się z portem 80 Zatrzymaj również tę usługę.
4. Potwierdź ten port 80 jest bezpłatny, uruchamiając polecenie NetStat:
$ sudo netstat -tlpn | GREP 80

5. Teraz nadszedł czas na ucieczkę LetsEncrypt
Aby uzyskać certyfikat SSL. Iść do Zaszypujmy katalog instalacyjny znaleziony w /usr/local/letsEncrypt ścieżka systemowa i uruchom Letsecrrypt-Auto polecenie, dostarczając certyfikat --samodzielny
opcja i -D
flaga dla każdej domeny lub subdomeny, którą chcesz wygenerować certyfikat.
$ cd/usr/local/letsencrypt $ sudo ./LetsEncrypt -Auto certonly --standalone -d Your_domain.tld

6. Wprowadź adres e -mail, którego będzie używany przez Let's Encrypt w celu odzyskania zagubionego klucza lub pilnych powiadomień.

7. Zgadzam się z warunkami licencji, naciskając klawisz Enter.

8. Wreszcie, jeśli wszystko się powiedzie, na twojej konsoli terminalowej powinna pojawić się wiadomość podobna do zrzutu zrzutu ekranu.

Krok 3: Zainstaluj Let's Scrypt SSL Certificate w Nginx
9. Teraz, gdy wygenerowano certyfikat SSL, czas skonfigurować Webserver Nginx, aby z niego korzystać. Nowo certyfikaty SSL są umieszczone w /etc/limsecrrypt/na żywo/
W katalogu nazwanym na cześć nazwy domeny. Uruchom polecenie LS, aby wymienić pliki certyfikatu wydane dla Twojej domeny.
$ sudo ls/etc/limsecrrypt/na żywo/$ sudo ls -al/etc/letsencrypt/na żywo/caesszar.tk

10. Następnie otwórz /etc/nginx/witryny-dostępny/domyślny
Plik z edytorem tekstu i dodaj następujący blok po pierwszym skomentowanym wierszu, który określa początek bloku SSL. Użyj poniższego zrzutu ekranu jako wskazówek.
$ sudo nano/etc/nginx/witryny-obsługuje/default
Nginx blokowy fragment:
# Konfiguracja SSL # Słuchaj 443 SSL default_server; SSL_Certificate/Etc/LetsEncrypt/Live/Caeszar.TK/Fullchain.pem; SSL_Certificate_Key/etc/LetsEncrypt/Live/Caeszar.TK/Privey.pem; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; ssl_prefer_server_ciphers on; SSL_CIPHERS 'EECDH+AESGCM: EDH+AESGCM: AES256+EECDH: AES256+EDH'; ssl_dhparam/etc/nginx/ssl/dhparams.pem;

Wymień odpowiednio wartości nazwy domeny dla certyfikatów SSL.
11. Na następnym kroku generuj silny Diffie-Hellman szyfr w /etc/nginx/ssl/ katalog w celu ochrony twojego serwera przed Tarapaty atak przez uruchamianie następujących poleceń.
$ sudo mkdir/etc/nginx/ssl $ cd/etc/nginx/ssl $ sudo openssl dhparam -out dhparams.PEM 2048

12. Na koniec ponownie uruchom demon nginx, aby odzwierciedlić zmiany.
$ sudo systemctl restart nginx
i przetestuj certyfikat SSL, odwiedzając poniższy adres URL.
https: // www.ssllabs.COM/SSLTEST/Analizuj.html

Krok 4: Auto Renew Let's Encrypt Nginx Certyfikaty
13. Certyfikaty wydane przez Szyfrujmy CA są ważne przez 90 dni. Aby automatycznie odnowić pliki przed datą ważności SSL-Renew.cii
Bash skrypt w /usr/lokalny/bin/
katalog z następującą treścią.
$ sudo nano/usr/local/bin/ssl-renew.cii
Dodaj następującą zawartość do SSL-Renew.cii
plik.
#!/bin/bash cd/usr/local/limscrypt sudo ./LetsEncrypt-Auto certonly -a Webroot --agree-tos--Renew-By-Default--Webroot-Path =/var/www/html/-d Your_Domain.TLD sudo systemCtl Reload nginx exit 0

Zastąp --Webroot-Path
zmienne, aby dopasować root dokumentu Nginx. Upewnij się, że skrypt jest wykonywalny, wydając następujące polecenie.
$ sudo chmod +x/usr/local/bin/ssl-renew.cii
14. Wreszcie dodaj zadanie CRON, aby uruchomić skrypt co dwa miesiące o północy, aby zapewnić, że Twój certyfikat zostanie zaktualizowany za około 30 dni, zanim wygasa.
$ sudo crontab -e
Dodaj następujący wiersz na dole pliku.
0 1 1 */2 */usr/local/bin/ssl-renew.sh >>/var/log/your_domain.TLD-RENEW.Log 2> i 1

Otóż to! Twój serwer Nginx obsługuje teraz treść SSL za pomocą bezpłatnego Szyfrujmy SSL certyfikat.
- « Jak zainstalować serwer NTP i klient na Ubuntu
- Jak zainstalować OpenSsh 8.0 serwer ze źródła w Linux »