CodeGym /Kursy /Docker SELF /Konfiguracja HTTPS (SSL/TLS) z użyciem Let's Encrypt

Konfiguracja HTTPS (SSL/TLS) z użyciem Let's Encrypt

Docker SELF
Poziom 7 , Lekcja 3
Dostępny

Konfiguracja HTTPS (SSL/TLS) z użyciem Let's Encrypt

1. Co to za wykład i dlaczego to jest ważne

W dzisiejszym świecie HTTPS to już standard dla wszystkich stron internetowych. Jeśli chcesz, aby twoi użytkownicy czuli się bezpiecznie, a Google nie obniżał twojej strony w rankingu wyszukiwarek (tak, HTTPS wpływa na SEO), po prostu musisz skonfigurować SSL/TLS. Protokół HTTPS chroni dane przesyłane między użytkownikiem a serwerem poprzez szyfrowanie, co uniemożliwia ich przechwycenie przez osoby trzecie.

W tym wykładzie krok po kroku omówimy, jak za darmo podłączyć HTTPS do twojego serwera internetowego za pomocą Let's Encrypt. Let's Encrypt to zaufane centrum certyfikacji (CA), które oferuje darmowe certyfikaty i narzędzia do ich instalacji. Nauczymy się również automatycznie odnawiać nasze certyfikaty, aby uniknąć problemów związanych z ich wygaśnięciem.

HTTP vs HTTPS

HTTP (Hypertext Transfer Protocol) — to protokół przesyłania danych. Jest w porządku do przeglądania memów o kotach, ALE! Jeśli ktoś podłączy się do twojej sieci Wi-Fi (na przykład w kawiarni), będzie mógł przechwytywać dane, które wysyłasz na serwer (koszmar, twoje hasło stanie się "ich hasłem").

HTTPS (Hypertext Transfer Protocol Secure) — to wersja HTTP z dodanym szyfrowaniem. Dane przesyłane między klientem a serwerem są chronione za pomocą SSL/TLS (Secure Sockets Layer / Transport Layer Security). Osoby trzecie nie będą mogły zobaczyć zawartości "pakietów" danych, nawet jeśli uda im się je przechwycić.


2. Instalacja Let's Encrypt i Certbot

Certbot to narzędzie od twórców Let's Encrypt, które pozwala łatwo uzyskać i skonfigurować certyfikaty SSL dla twojego serwera sieciowego. Jest na tyle sprytny, że sam potrafi współpracować z Nginx lub Apache, wykonując za nas całą ciężką pracę. Zaczynamy od instalacji.

Instalacja Certbot

Upewnij się, że twój serwer jest zaktualizowany:

sudo apt-get update
sudo apt-get upgrade

Teraz zainstalujemy Certbot i jego wtyczki:

  • Dla Nginx:

    sudo apt-get install certbot python3-certbot-nginx
    
  • Dla Apache:

    sudo apt-get install certbot python3-certbot-apache
    

Sam Certbot to po prostu kod napisany w Pythonie, aktywnie wspierany przez społeczność. Łatwo integruje się z większością serwerów.


3. Pobieranie certyfikatu SSL za pomocą Certbot

Dla Nginx

Certbot może automatycznie skonfigurować HTTPS dla Twojej strony, jeśli używasz Nginx. Wpisz:

sudo certbot --nginx

Certbot przeskanuje Twoje aktualne wirtualne hosty (server bloki w konfiguracji). Zapyta, dla jakiej domeny chcesz skonfigurować HTTPS. Upewnij się, że domena wskazuje na Twój serwer w DNS (na przykład za pomocą rekordu A).

Przykładowy wynik:

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: example.com
2: www.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Wybierz swoją domenę (na przykład 1).

Certbot automatycznie skonfiguruje konfigurację Nginx i sprawdzi ją. Po pomyślnym zakończeniu instalacji zobaczysz komunikat w stylu:

Congratulations! Your certificate and chain have been saved ...

Teraz Twoja strona jest dostępna przez HTTPS. Możesz to sprawdzić, otwierając https://example.com w przeglądarce.


Dla Apache

Jeśli używasz Apache, komenda będzie nieco inna:

sudo certbot --apache

Certbot również przeskanuje Twoje wirtualne hosty (<VirtualHost> bloki) i zaproponuje konfigurację HTTPS dla wybranych domen. Wybierz odpowiednie domeny i Certbot zrobi wszystko za Ciebie.

Po zakończeniu procesu ponownie zobaczysz komunikat gratulacyjny i będziesz mógł zweryfikować dostępność swojej strony przez HTTPS.


4. Automatyczne odnawianie certyfikatów

Certyfikaty Let's Encrypt są ważne tylko przez 90 dni, więc trzeba je regularnie odnawiać. Certbot może to robić automatycznie, ale musimy upewnić się, że wszystko jest dobrze skonfigurowane.

Sprawdzanie daty ważności certyfikatów

Możesz sprawdzić, kiedy wygasa Twój certyfikat:

sudo certbot certificates

Wynik pokaże Twoje domeny i datę wygaśnięcia ich certyfikatów.

Konfiguracja automatycznego odnawiania

Podczas instalacji Certbot automatycznie dodaje zadanie do Crona lub Systemd Timer, aby sprawdzać aktualizacje. Jeśli chcesz upewnić się, że wszystko działa, dodaj testowe zadanie w Crone:

sudo crontab -e

Dodaj linię:

0 0 * * * certbot renew --quiet

Ta komenda sprawdza i odnawia certyfikaty codziennie o północy. Klucz --quiet wyłącza wyświetlanie niepotrzebnych informacji.

Ręczne odnawianie

Jeśli chcesz ręcznie odnowić certyfikaty (na przykład do testów), użyj:

sudo certbot renew

5. Włączanie automatycznego przekierowania HTTP → HTTPS

Twoja strona wciąż może być dostępna przez HTTP, ale to nie jest bezpieczne. Skonfigurujmy automatyczne przekierowanie wszystkich zapytań do HTTPS.

Dla Nginx

Certbot może automatycznie skonfigurować przekierowanie przy wydawaniu certyfikatu. Jeśli nie włączyłeś tego wcześniej, dodaj przekierowanie ręcznie do pliku konfiguracyjnego wirtualnego hosta:

server {
    listen 80;
    server_name example.com www.example.com;

    return 301 https://$host$request_uri;
}

Zrestartuj Nginx, aby zastosować zmiany:

sudo systemctl restart nginx

Dla Apache

Certbot również oferuje włączenie przekierowań automatycznie. Jeśli pominąłeś ten krok, dodaj do swojego pliku wirtualnego hosta:

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

Zrestartuj Apache:

sudo systemctl restart apache2

6. Debugowanie błędów

Jeśli coś poszło nie tak, zacznij od sprawdzenia logów:

Dla Nginx

sudo tail -f /var/log/nginx/error.log

Dla Apache

sudo tail -f /var/log/apache2/error.log

Testowanie konfiguracji

Sprawdź również konfigurację serwera sieciowego:

  • Dla Nginx:

    sudo nginx -t
    
  • Dla Apache:

    sudo apachectl configtest
    

Sprawdzanie HTTPS

Upewnij się, że Twoja strona jest dostępna przez HTTPS:

curl -I https://example.com

Powinieneś zobaczyć status 200 OK i linię Strict-Transport-Security, co oznacza, że HTTPS działa.

Teraz jesteś gotowy na tworzenie bezpiecznych, chronionych stron HTTPS. Twoi użytkownicy będą zadowoleni, Google też, a Ty będziesz spał spokojnie, wiedząc, że Twoje dane są chronione przed złoczyńcami internetu.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION