Jak automatycznie odnawiać certyfikaty SSL za pomocą ACME i Certbot?
Coraz więcej certyfikatów SSL wydawanych jest dziś w modelu automatycznym przy użyciu protokołu ACME. Dzięki temu serwer może sam pobierać i odnawiać certyfikaty, bez ręcznej ingerencji administratora.
Po jednorazowej konfiguracji certyfikat będzie:
- automatycznie wydawany
- automatycznie odnawiany przed wygaśnięciem
- automatycznie instalowany na serwerze
Automatyzacja ACME nabiera szczególnego znaczenia wraz ze skracaniem maksymalnego okresu ważności publicznych certyfikatów TLS. Od 24 lutego 2026 roku certyfikaty DigiCert mogą być wydawane maksymalnie na 199 dni, a w kolejnych latach okres ten będzie jeszcze krótszy. Dzięki ACME proces wydawania, odnawiania i wdrażania certyfikatów może odbywać się bez ręcznej ingerencji administratora.
Dowiedz się więcej o skróceniu okresu ważności certyfikatów.
1. Upewnij się, że masz pod ręką następujące informacje:
Po realizacji zamówienia otrzymasz dane wymagane do połączenia klienta ACME z systemem DigiCert:
- ACME Directory URL,
- EAB Key Identifier (KID),
- EAB HMAC Key.
Dane te są poufne i należy traktować je podobnie jak dane dostępowe do systemu.
2. Rejestracja klienta ACME
W pierwszej kolejności należy zarejestrować klienta ACME, aby móc za jego pomocą wystawiać i odnawiać certyfikaty. W tym celu, należy wydać poniższe polecenie:
--server ACME_DIRECTORY_URL \
--eab-kid EAB_KEY_ID \
--eab-hmac-key EAB_HMAC_KEY \
--email admin@twojadomena.pl
UWAGA: Ten krok wykonuje się tylko raz.
3. Wydanie certyfikatu
Najprostszą metodą jest skorzystanie z walidacji HTTP, przy czym walidacja HTTP-01 nie może być używana do wystawiania certyfikatów Wildcard. Dla nazw typu *.domena.pl należy zastosować walidację DNS-01 (szczegółowy opis tej metody znajdziesz na końcu artykułu).
W przypadku walidacji HTTP-01 istotne są 2 kwestie:
- domena, dla której wystawiany jest certyfikat musi wskazywać na serwer, na którym wdrażamy automatyzację ACME,
- serwer walidacyjny CA musi mieć możliwość pobrania pliku challenge pod adresem
http://domena/.well-known/acme-challenge/..., dlatego port TCP/80 musi być dostępny z Internetu dla tej domeny.
W celu wydania certyfikatu, skorzystaj z poniższego polecenia:
--server ACME_DIRECTORY_URL \
--webroot \
--webroot-path /var/www/twojadomena.pl \
--domains twojadomena.pl \
--domains www.twojadomena.pl
4. Gdzie znaleźć pliki certyfikatu?
Certbot domyślnie zapisuje certyfikaty w następującym katalogu:
/etc/letsencrypt/live/twojadomena.pl/
Znajdziesz tam następujące pliki:
- cert.pem – certyfikat klienta
- chain.pem – certyfikat pośredni (intermediate)
- fullchain.pem – certyfikat klienta i certyfikat pośredni
- privkey.pem – klucz prywatny
Klucz prywatny jest materiałem poufnym. Nie należy go przesyłać osobom trzecim ani udostępniać publicznie. Dostęp do pliku powinien być ograniczony wyłącznie do uprawnionych procesów i administratorów.
5. Konfiguracja Apache
W pliku VirtualHost należy wprowadzić następujące wpisy:
SSLCertificateKeyFile /etc/letsencrypt/live/twojadomena.pl/privkey.pem
Polecenie przeładowania serwera:
Po wdrożeniu zweryfikuj, czy serwer prezentuje nowy certyfikat i pełny łańcuch certyfikacji. Możesz skorzystać z narzędzia SSL24: Sprawdź certyfikat.
6. Konfiguracja NGINX
ssl_certificate_key /etc/letsencrypt/live/twojadomena.pl/privkey.pem;
Polecenie przeładowania serwera:
Po wdrożeniu zweryfikuj, czy serwer prezentuje nowy certyfikat i pełny łańcuch certyfikacji. Możesz skorzystać z narzędzia SSL24: Sprawdź certyfikat.
7. Automatyczne odnawianie certyfikatu
Możesz zweryfikować, czy funkcja automatycznego odnawiania działa prawidłowo, korzystając z poniższej komendy:
certbot renew --dry-run nie zakończy się poprawnie.Przed dodaniem własnego wpisu cron sprawdź, czy instalacja Certbot nie skonfigurowała już automatycznego uruchamiania przez systemd timer lub cron. Nie należy tworzyć drugiego, równoległego mechanizmu bez potrzeby.
Konfiguracja automatycznego odnawiania za pomocą usługi cron:
8. Automatyczne przeładowanie serwera
Polecenie Apache:
Polecenie NGINX:
Jak przebiega opisany wyżej proces automatyzacji?
- Cron uruchamia polecenie certbot renew.
- Certbot sprawdza lokalnie, czy zarządzany certyfikat kwalifikuje się do odnowienia. Jeśli tak, wykonuje proces ACME z serwerem DigiCert, przeprowadza wymagane challenge i pobiera nowy certyfikat.
- Serwer WWW zostaje przeładowany.
Po prawidłowej konfiguracji standardowe odnowienia nie wymagają ręcznej obsługi administratora. Należy jednak monitorować poprawność procesu, błędy walidacji oraz stan usługi Certbot.
Certyfikat Wildcard - użyj DNS-01
W celu wydania certyfikatu Wildcard skorzystaj z poniższego polecenia.
Jeśli korzystasz z automatycznej integracji DNS (zalecane):
--server ACME_DIRECTORY_URL \
--dns-rfc2136 \
--dns-rfc2136-credentials /lokalizacja_pliku_z_danymi_autoryzacji_dns/rfc2136.ini \
--domains twojadomena.pl \
--domains '*.twojadomena.pl'
Przy czym plik nazwany tu przykładowo rfc2136.ini musi zawierać dane dostępowe umożliwiające nawiązanie połączenia z serwerem DNS.
Przykładowa zawartość pliku rfc2136.ini:
dns_rfc2136_port = 53
dns_rfc2136_name = certbot-acme.
dns_rfc2136_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
dns_rfc2136_algorithm = HMAC-SHA256
Opis poszczególnych parametrów znajdziesz w poniższej tabeli.
| Parametr | Opis |
| dns_rfc2136_server | Adres IP lub nazwa serwera DNS obsługującego dynamiczne aktualizacje (np. serwer BIND). |
| dns_rfc2136_port | Port DNS, zazwyczaj 53. |
| dns_rfc2136_name | Nazwa klucza TSIG zdefiniowanego w BIND. Musi być zgodna z konfiguracją serwera. Zwróć uwagę na kropkę na końcu nazwy. |
| dns_rfc2136_secret | Tajny klucz TSIG zakodowany w Base64. |
| dns_rfc2136_algorithm | Algorytm podpisu TSIG, np. HMAC-SHA256. |
Jeżeli nie korzystasz z automatycznej integracji z DNS i dodajesz rekord TXT ręcznie:
--server ACME_DIRECTORY_URL \
--manual \
--preferred-challenges dns \
--domains twojadomena.pl \
--domains '*.twojadomena.pl'
W tym przypadku Certbot wyświetli wartość rekordu TXT _acme-challenge.twojadomena.pl, który należy dodać do strefy DNS. Po propagacji rekordu Certbot dokończy weryfikację i DigiCert wystawi certyfikat Wildcard.
Dokumentacja
Pełna dokumentacja DigiCert ACME dostępna jest pod adresem:
https://docs.digicert.com/en/certcentral/automate-certificate-lifecycle/third-party-acme-client-integration.html
Dokumentacja Certbot dostępna jest pod adresem:
https://certbot.eff.org/instructions
