Jak korzystać z automatyzacji za pomocą protokołu ACME?
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
Rozwiązanie to jest szczególnie przydatne w środowiskach, w których administrator zarządza wieloma domenami lub okres ważności certyfikatów jest krótki.
Niniejsza instrukcja została przygotowana z myślą o serwerach Linux i kliencie Certbot.
1. Upewnij się, że masz pod ręką następujące informacje:
- ACME Directory URL
- KID (Key Identifier)
- HMAC Key
Wszystkie 3 wartości otrzymasz od SSL24 zaraz po zrealizowaniu zamówienia
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 https://acme.digicert.com/v2/acme/directory \
--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. W tym przypadku istotne są 2 kwestie:
- domena, dla której wystawiany jest certyfikat musi wskazywać na serwer, na którym wdrażamy automatyzację ACME
- port 80 musi być publicznie dostępny
W celu wydania certyfikatu, skorzystaj z poniższego polecenia:
--server https://acme.digicert.com/v2/acme/directory \
--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
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:
6. Konfiguracja NGINX
ssl_certificate_key /etc/letsencrypt/live/twojadomena.pl/privkey.pem;
Polecenie przeładowania serwera:
7. Automatyczne odnawianie certyfikatu
Możesz zweryfikować, czy funkcja automatycznego odnawiania działa prawidłowo, korzystając z poniższej komendy:
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 łączy się z systemem DigiCert w celu sprawdzenia ważności certyfikatu.
- Jeśli certyfikat zbliża się do wygaśnięcia, zostaje automatycznie odnowiony.
- Serwer WWW zostaje przeładowany.
Administrator nie musi wykonywać żadnych dodatkowych czynności (nowy certyfikat instaluje się automatycznie).
Dokumentacja
Pełna dokumentacja DigiCert ACME dostępna jest pod adresem:
https://docs.digicert.com/en/certcentral/certificate-tools/certificate-lifecycle-automation-guides/third-party-acme-integration.html
Dokumentacja Certbot dostępna jest pod adresem:
https://certbot.eff.org/instructions
