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:
Otwórz edytor
Cron
dla obecnego użytkownika:sudo crontab -e
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.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.
GO TO FULL VERSION