Jak zainstalować Certbot i zautomatyzować odnowienie certyfikatów Let’s Encrypt przy użyciu hooks

Certyfikaty SSL/TLS są niezbędnym elementem dzisiejszego internetu, zapewniając bezpieczeństwo i prywatność danych przesyłanych między użytkownikami a serwerami. Dzięki Let’s Encrypt oraz narzędziu Certbot, możliwe jest bezpłatne generowanie certyfikatów SSL. W tym wpisie opiszę, jak zainstalować Certbot, wygenerować certyfikat Let’s Encrypt oraz zautomatyzować proces odnowienia za pomocą hooks.

Co to jest Certbot?

Certbot to otwarto źródłowe narzędzie do automatyzacji procesu uzyskiwania i odnawiania certyfikatów SSL od Let’s Encrypt. Certbot sprawia, że wdrożenie certyfikatu na serwerze WWW jest szybkie i proste, a dodatkowo pozwala na automatyczne odnawianie certyfikatów.

sudo apt-get update

 

sudo apt-get install certbot

Generowanie certyfikatów Let’s Encrypt 

Gdy Certbot jest już zainstalowany, możesz wygenerować swój pierwszy certyfikat SSL. Załóżmy, że chcesz wygenerować certyfikat dla domeny krawaczynski.pl. W tym celu możesz użyć trybu standalone, który nie wymaga działającego serwera WWW:

sudo certbot certonly --standalone -d krawaczynski.pl

 Certbot utworzy plik certyfikatu oraz odpowiednie klucze na twoim serwerze. Certyfikat ten będzie ważny przez 90 dni, więc zaleca się automatyzowanie procesu odnawiania.

  uwagaUWAGA! Serwery let’s encrypt łączą się z Twoim komputerem na porcie :80 musisz zadbać aby na Twoim firewall otworzyć ten port. Jeżeli jest zajęty możesz sprawdzić jaka usługa go zajmuje

sudo lsof -i :80 

Generowanie pliku PSK12 

Często w aplikacjach wymagany jest format PKCS12  (.p12)

Konwersja: 

openssl pkcs12 -export -in /etc/letsencrypd t/live/twoja-domena.com/fullchain.pem -inkey /etc/letsencrypt/live/twoja-domena.com/privkey.pem -out pakiet.p12 -name alias -CAfile /etc/letsencrypt/live/twoja-domena.com/chain.pem -caname root

Automatyzacja z hooks Certbot 

Certbot oferuje funkcję zwaną „hooks”, która pozwala na automatyczne uruchamianie skryptów przed lub po odnowieniu certyfikatu. Jest to szczególnie przydatne, gdy musisz np. skopiować certyfikat do innych aplikacji lub zrestartować usługi, które używają certyfikatów.

Przykład zastosowania hooks z Prosody

Załóżmy, że korzystasz z serwera komunikacyjnego Prosody, który obsługuje szyfrowaną komunikację dla Jabber/XMPP. Po każdym odnowieniu certyfikatu musisz zaktualizować certyfikaty w Prosody i zrestartować usługę.

Utwórz skrypt do aktualizacji certyfikatów dla Prosody

Najpierw musisz utworzyć prosty skrypt, który będzie kopiował nowo wygenerowane certyfikaty do odpowiedniego folderu Prosody i restartował usługę. Skrypt zapisz np. pod nazwą /usr/local/bin/update-prosody-cert.sh:

#!/bin/bash
# Ścieżka do certyfikatów
CERT_PATH="/etc/letsencrypt/live/krawaczynski.pl"
# Kopiowanie nowego certyfikatu i klucza
cp $CERT_PATH/fullchain.pem /etc/prosody/certs/fullchain.pem
cp $CERT_PATH/privkey.pem /etc/prosody/certs/privkey.pem
# Restart Prosody
systemctl restart prosody

 

Skonfiguruj hooks Certbot

Aby uruchomić ten skrypt po każdym odnowieniu certyfikatu, musisz skonfigurować hook w Certbot. Możesz to zrobić, dodając poniższy parametr do crona lub do pliku konfiguracyjnego Certbot:

certbot renew --deploy-hook "/usr/local/bin/update-prosody-cert.sh"

Teraz, za każdym razem, gdy Certbot odnowi certyfikat, skrypt automatycznie skopiuje nowe pliki certyfikatów i zrestartuje Prosody

Często zadawane pytania (FAQ)

1. Jak często muszę odnawiać certyfikat Let’s Encrypt?

Certyfikat Let’s Encrypt jest ważny przez 90 dni, ale dzięki Certbotowi proces odnowienia może być automatyzowany.

2. Czy mogę używać Certbot z serwerami innymi niż Apache lub Nginx?

Tak, Certbot obsługuje tryb standalone, który pozwala generować certyfikaty bez uruchomionego serwera WWW. To idealne rozwiązanie dla użytkowników takich aplikacji jak Prosody, HAProxy, czy inne niestandardowe usługi.

3. Jak sprawdzić, czy automatyczne odnowienie działa poprawnie? Możesz ręcznie przetestować odnowienie certyfikatu, uruchamiając polecenie:

sudo certbot renew --dry-run

Certbot to wszechstronne narzędzie, które pozwala szybko wygenerować certyfikaty SSL z Let’s Encrypt. Dzięki hooks możesz zautomatyzować wiele zadań, takich jak kopiowanie certyfikatów do aplikacji i restartowanie usług. Dla administratorów serwerów, którzy dbają o bezpieczeństwo i automatyzację, Certbot jest idealnym rozwiązaniem. Skorzystaj z powyższych przykładów, aby zaimplementować automatyzację w swojej infrastrukturze!

Przykład zastosowania ceryfikatu 

Certyfikat dla XMPP Serwer

Prosody XMPP Serwer