CodeGym /Kursy /Docker SELF /Zarządzanie certyfikatami i konfiguracja automatycznej ak...

Zarządzanie certyfikatami i konfiguracja automatycznej aktualizacji

Docker SELF
Poziom 7 , Lekcja 4
Dostępny

Zarządzanie certyfikatami i konfiguracja automatycznej aktualizacji

1. Sprawdzanie bieżących certyfikatów

Komenda certbot certificates

Zacznijmy od prostego: jak sprawdzić, jakie certyfikaty są już zainstalowane na twoim serwerze? Let's Encrypt oferuje wygodne narzędzie — certbot. Za pomocą komendy certbot certificates możesz uzyskać szczegółowe informacje o aktualnych certyfikatach.

sudo certbot certificates

W rezultacie zobaczysz coś takiego:

Found the following certs:
  Certificate Name: example.com
    Domains: example.com www.example.com
    Expiry Date: 2023-12-31 10:00:00+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem

Tu podano ważne szczegóły:

  • Nazwa certyfikatu.
  • Domeny objęte certyfikatem.
  • Data wygaśnięcia (żebyś mógł je odnowić na czas).
  • Ścieżka do plików certyfikatu i klucza prywatnego.

Przydatny lifehack:

Jeśli masz nawyk ignorowania powiadomień o terminach wygaśnięcia, ta komenda stanie się twoim najlepszym przyjacielem. Nikt przecież nie chce być tym programistą, który dowiaduje się o wygasłym certyfikacie od wkurzonych użytkowników.


2. Automatyczna aktualizacja certyfikatów

Jak działa Let's Encrypt

Certyfikaty Let's Encrypt są ważne przez 90 dni, aby zminimalizować ryzyko bezpieczeństwa. Ale ręczne ich odnawianie co 3 miesiące to niezbyt wygodna opcja. Na szczęście do automatyzacji używana jest wbudowana komenda:

sudo certbot renew

Ten proces sprawdza wszystkie certyfikaty i automatycznie odnawia te, które są już bliskie wygaśnięcia.

Konfiguracja automatycznego odnawiania za pomocą Cron

Cron to wbudowane narzędzie do planowania zadań w Linux. Uruchamia ono komendy zgodnie z harmonogramem, i to właśnie to, czego potrzebujemy do automatyzacji aktualizacji certyfikatów. Oto jak skonfigurować Cron do odnawiania:

  1. Otwórz edytor Cron dla obecnego użytkownika:

    sudo crontab -e
    
  2. Dodaj następujący wiersz na końcu pliku:

    0 0 * * * certbot renew --quiet
    

    Ta komenda uruchamia certbot renew codziennie o północy. Flaga --quiet tłumi zbędne komunikaty, dzięki czemu aktualizacja przebiega cicho i bez przeszkadzania.

  3. Zapisz zmiany i wyjdź z edytora.

Teraz Twój serwer będzie automatycznie odnawiał certyfikaty i nie musisz się już martwić o ich wygaśnięcie (no, prawie).


3. Ręczne odnawianie certyfikatów

Czasami automatyzacja nie rozwiązuje wszystkich problemów i trzeba odnawiać certyfikaty ręcznie. Na przykład, jeśli właśnie dodałeś nową domenę do konfiguracji strony, musisz ręcznie zażądać nowego certyfikatu. Z pomocą znowu przychodzi certbot:

Przykład komendy:

sudo certbot renew

Odnawianie certyfikatu dla konkretnej domeny

Jeśli musisz odnowić certyfikat związany z konkretną domeną, użyj następującego formatu zapytania:

sudo certbot certonly --nginx -d example.com -d www.example.com

Tu:

  • --nginx wskazuje, że konfiguracja zostanie automatycznie zastosowana na serwerze Nginx. Dla Apache używa się --apache.
  • Flagi -d wymieniają domeny, dla których wymagane jest wydanie certyfikatu.

Po wykonaniu komendy Certbot sprawdzi konfigurację serwera, zażąda nowego certyfikatu i skonfiguruje go.


4. Powiadomienia i monitoring

Powiadomienia email

Podczas instalacji Certbot poproszono Cię o Twój adres email. Jeśli go podałeś, to będziesz otrzymywać powiadomienia 20 dni przed wygaśnięciem certyfikatu. Jeśli nie podałeś emaila lub chcesz go zmienić, możesz to zrobić w ten sposób:

sudo certbot register --update-registration --email newaddress@example.com

Teraz żadna sytuacja Cię nie zaskoczy. No, prawie.

Sprawdzanie zewnętrzne

Istnieją zewnętrzne serwisy, które mogą pomóc Ci monitorować okres ważności certyfikatów. Na przykład, SSL Labs. Po prostu wprowadź adres strony, a serwis sprawdzi jej certyfikat, w tym okres ważności, łańcuch zaufania i poziom bezpieczeństwa.


5. Usuwanie niepotrzebnych certyfikatów

Czasami stare certyfikaty przestają być aktualne, na przykład, gdy przestaniesz obsługiwać jakąś domenę. Żeby nie zaśmiecać systemu, lepiej je usunąć.

Komenda do usuwania:

sudo certbot delete

Certbot pokaże listę dostępnych certyfikatów i zaproponuje wybranie tego, który chcesz usunąć.

Przydatna wskazówka:

Uważaj podczas usuwania certyfikatów, żeby przypadkiem nie wyłączyć działającej strony. Zawsze sprawdzaj, czy certyfikat nie jest już używany.


6. Przykłady i debugowanie błędów

Sprawdzanie po aktualizacji

Po jakichkolwiek zmianach lub aktualizacjach certyfikatów zawsze sprawdzaj, czy strona działa poprawnie. Najłatwiej zrobić to za pomocą curl:

curl -I https://example.com

Oczekiwany rezultat — kod HTTP/1.1 200 OK.

Jeśli coś poszło nie tak, w pierwszej kolejności sprawdź logi:

  • Dla Nginx:

      sudo tail -f /var/log/nginx/error.log
    
  • Dla Apache:

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

Częsty błąd: "Too Many Requests"

Jeśli zbyt często żądasz nowych certyfikatów, Let's Encrypt może zablokować ci dostęp z błędem "Too Many Requests". W takich przypadkach zaleca się użycie testowego serwera Let's Encrypt:

sudo certbot certonly --test-cert --nginx -d example.com

Ta komenda wydaje testowy certyfikat, który nie jest ważny do rzeczywistego użycia, ale pozwala sprawdzić konfigurację.


7. Ostatni krok: automatyczny restart serwera www

Let's Encrypt aktualizuje pliki certyfikatów, ale serwery www, takie jak Nginx czy Apache, nie zauważają zmian, dopóki się ich nie zrestartuje. To również można zautomatyzować. Zaktualizuj wpis w Cron:

0 0 * * * certbot renew --quiet && systemctl reload nginx

Lub dla Apache:

0 0 * * * certbot renew --quiet && systemctl reload apache2

Teraz po aktualizacji każdy certyfikat zostanie od razu zastosowany na serwerze.


Ten wykład ma na celu zapewnić Ci spokojny sen w nocy, wiedząc, że Twoje certyfikaty są automatycznie odnawiane, strony są zabezpieczone, a Ty nie otrzymasz telefonu od szefa o trzeciej w nocy z słowami: "Użytkownicy skarżą się, że strona jest niedostępna". Zarządzanie certyfikatami to ważna umiejętność, która przyda się w pracy, szczególnie jeśli planujesz zajmować się wdrażaniem dużych aplikacji webowych lub inżynierią DevOps.

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