Przejdź do głównej treści
Certyfikaty SSL klasy Premium od Platinum Partnera DigiCert
DigiCert Trust Lifecycle Manager od SSL24.pl - Platinum Partnera DigiCert

Jak automatycznie odnawiać certyfikaty SSL za pomocą ACME i Certbot?

     
Ocena: 5,00/5,00

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.

UWAGA: Niniejsza instrukcja opisuje automatyzację z wykorzystaniem standardowego protokołu ACME i klienta Certbot. Nie należy jej mylić z usługą DigiCert Managed Automation w CertCentral. Protokół ACME pozostaje wspierany w CertCentral również po wycofaniu Managed Automation 1 października 2026 roku. Certbot został wykorzystany w tej instrukcji jako popularny przykład dla serwerów Linux.

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:

certbot register \
--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:

certbot certonly \
--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:

SSLCertificateFile /etc/letsencrypt/live/twojadomena.pl/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/twojadomena.pl/privkey.pem

Polecenie przeładowania serwera:

systemctl reload apache2

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 /etc/letsencrypt/live/twojadomena.pl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/twojadomena.pl/privkey.pem;

Polecenie przeładowania serwera:

systemctl reload nginx

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 uznawaj automatyzacji za wdrożoną, dopóki 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:

0 */12 * * * certbot renew --quiet

8. Automatyczne przeładowanie serwera

Polecenie Apache:

certbot renew --deploy-hook "systemctl reload apache2"

Polecenie NGINX:

certbot renew --deploy-hook "systemctl reload nginx"

Jak przebiega opisany wyżej proces automatyzacji?

  1. Cron uruchamia polecenie certbot renew.
  2. 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.
  3. 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):

certbot certonly \
--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_server = 192.0.2.53
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:

certbot certonly \
--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

Oceń ten artykuł
Średnia ocena czytelników 5,00/5,00 na podstawie 12 głosów
Informacja o plikach cookies

Ta strona wykorzystuje technologię plików cookies. Korzystając z naszego serwisu bez zmiany ustawień dotyczących cookies wyrażasz zgodę na ich używanie, zgodnie z aktualnymi ustawieniami przeglądarki. Pozwalają nam one m.in. rozpoznawać użytkowników i ich preferencje, jak również dostarczają informacji, które elementy naszej strony są najpopularniejsze i najbardziej użyteczne dla osób odwiedzających nasz serwis.

Rozumiem
SSL24 na Facebooku