Zainstaluj Nginx z bezpłatnym certyfikatem SSL A + od Let's Encrypt na Ubuntu 18.04

Skonfigurowanie serwera w celu zapewnienia HTTPS przy użyciu certyfikatów Let's Encrypt jest proste i darmowe. Wystarczy...

Powszechnie wiadomo, że szyfrowanie SSL / TLS w Twojej witrynie prowadzi do wyższych pozycji wyszukiwania i większego bezpieczeństwa dla użytkowników. Przez ostatnie kilka miesięcy przeglądarka Chrome wyświetla przekreśloną kłódkę w pobliżu paska adresu URL w witrynach, w których użytkownik przesyła dane (formularze) bez SSL.

Do tej pory istniały dwie bariery we wdrażaniu certyfikatów SSL - ręczne uzyskanie certyfikatu i oczywiście cena.

Let's Encrypt zmienia to na zawsze, oferują bezpłatny certyfikat SSL. Certyfikaty wydawane przez Let's Encrypt są obecnie zaufane przez większość przeglądarek, w tym przez starsze przeglądarki, takie jak Internet Explorer w systemie Windows XP SP3. Ponadto Let's Encrypt w pełni automatyzuje zarówno wydawanie, jak i odnawianie certyfikatów, udostępniając doskonałe narzędzie o nazwie Certbot, które może analizować pliki konfiguracyjne serwerów WWW (np. Nginx, IIS, apache) i konfigurować je automatycznie. Może nawet skonfigurować przekierowania HTTP-> HTTPS dla Twojej strony bez Twojego udziału!

Istnieje wiele sposobów uzyskania certyfikatu Let's Encrypt. Przede wszystkim Let's Encrypt musi potwierdzić własność domeny. Certbot zajmuje się tym automatycznie, możesz skonfigurować do tego rekordy DNS, ale jest to długi i kłopotliwy sposób. Certbot może wykorzystać istniejący serwer WWW do "wystawienia" unikalnego tokena identyfikującego domenę podczas generowania certyfikatu.

Wystarczy tej teorii, przejdźmy do działania. Poniżej znajduje się 6 prostych kroków, które pozwolą na uzyskanie, instalację i weryfikację certyfikatu SSL. Dla uproszczenia całość będziemy instalować na Ubuntu 18.04.

1. Instalacja Certbot

2. Instalacja Nginx (opcjonalnie)

3. Utwórz Virtual hosty lub Reverse proxy w Nginx (opcjonalnie)

4. Generowanie certyfikatu Let's Encrypt SSL przy użyciu narzędzia linii poleceń Certbot

5. Sprawdź SSL za pomocą SSLLabs

6. Ustaw zadanie Cron do odnawiania certyfikatu


1. Instalacja Certbot

Możliwe, że brakuje pakietu Certbot na liście pakietów, możesz po prostu dodać repozytorium Certbot, aby pobrać najnowszą wersję:

add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install python-certbot-nginx

2. Instalacja Nginx

Jeśli Nginx nie jest zainstalowany na twoim hoście, możesz to zrobić za pomocą jednego polecenia:

apt-get install nginx

3. Utwórz Virtual hosty lub Reverse proxy w Nginx

Jeśli masz już skonfigurowany virtual host, możesz pominąć ten krok. Pamiętaj jednak, aby wykonać kopię zapasową pliku, ponieważ Certbot z pewnością je edytuje. Jeśli nie, wykonaj następujące kroki.

Stworzymy prosty host, który będzie wskazywał na statyczny plik HTML, ale możesz połączyć także certyfikat SSL z proxy. To jest nasz przepis na aplikacje Node.js. W Code Fibers zawsze uruchamiamy wiele procesów Node.js na jednym hoście i obsługujemy je za pośrednictwem jednego serwera proxy Nginx na porcie 443. Sprawdź poniższe przykłady:

Serwowanie strony statycznej:

server {
        listen 80;
        listen [::]:80;
        root /var/www/html;
        server_name my-domain.com;
}

Nginx jako reverse proxy:

upstream app {
    zone app 64k;
    server 0.0.0.0:8001 max_fails=0 fail_timeout=10s weight=1;
    server 0.0.0.0:8002 max_fails=0 fail_timeout=10s weight=1;
}

server {
    listen 80;
    listen [::]:80;
    server_name my-reverse-proxy-domain.com;
    location / {
        proxy_pass http://app;
    }
}

4. Generowanie certyfikatu Let's Encrypt SSL przy użyciu narzędzia linii poleceń Certbot

Teraz najłatwiejsza część, uzyskanie certyfikatu za pomocą Certbot. Pamiętaj, że możesz zażądać certyfikatów dla wielu domen za pomocą jednego polecenia. Parametr -d określa domeny, dla których chcesz zażądać certyfikatu. Pamiętaj, aby zastąpić go własną nazwą domeny.

certbot --nginx -d my-domain.com -d my-reverse-proxy-domain.com

Przy pierwszym uruchomieniu Certbot zostaniesz poproszony o podanie adresu e-mail. Potwierdź, naciskając Enter na klawiaturze.

Po potwierdzeniu Certbot uruchomi "wyzwanie" i zażąda certyfikatu. Gdy zostaniesz poproszony o przekierowanie całego ruchu do HTTPS, naciśnij 2, a następnie Enter na klawiaturze.

5. Sprawdź SSL za pomocą SSLLabs

Po wykonaniu wszystkich kroków możesz zweryfikować certyfikat za pomocą testu SSLabs. Po prostu wpisz nazwę swojej domeny i poczekaj na wyniki.

Przykład dla codefibershq.com

6. Ustaw zadanie Cron do odnawiania certyfikatu

Uzyskane certyfikaty należy odnawiać co około dwa miesiące, Let's Encrypt jest pod tym kątem nieugięty. Musisz upewnić się, że uruchomisz certbot renew na swojej masyznie przynajmniej raz na kilka tygodni. W tym calu ustawimy automatyczne zadanie Cron, otwórz crontab w trybie edycji:

crontab -e

Dodaj linię poniżej:

0 5 */20 * * certbot renew

Ten wpis uruchomi komendę certbot renew 20-tego dnia miesiąca o 5 rano.

To wszystko, cieszę się, że udało ci się ustawić certyfikat SSL za pomocą Let's Encrypt i Certbot, prawda że to proste? Nie powinieneś mieć także żadnych problemów z ustawieniem certyfikatu na innych platformach i na różnych serwerach WWW.



Podobne wyszukiwania: lets encrypt nginx / free ssl certificate / ssl nginx / A+ ssllabs test / reverse proxy with nginx / secure nginx lets encrypt / nginx https / darmowy https nginx / ubuntu nginx ssl / free ssl for seo

These posts might be interesting for you:

  1. Microcaching with Nginx. A 5 minute setup with code
  2. Can you proxy MongoDB connection with Nginx? Sure you can!
Author: Peter

I'm a backend programmer for over 10 years now, have hands on experience with Golang and Node.js as well as other technologies, DevOps and Architecture. I share my thoughts and knowledge on this blog.