Generowanie, automatyczne odnawianie i podłączanie darmowych certyfikatów SSL od Let’s Encrypt w Apache


12 października 2020 / Michał Kortas


Poprzedni wpis na temat Let’s Encrypt opisywał generowanie darmowego certyfikatu za pomocą uwierzytelniania domeny przez odpowiedni wpis w DNS. Działa to świetnie, dopóki nie zachodzi potrzeba generowania i odnawiania certyfikatów w bardziej zautomatyzowany sposób. Dzisiaj pokażę, jak wygenerować certyfikat SSL za pomocą tzw. ACME challenge, czyli uwierzytelniania własności domeny przez wgranie do webroota odpowiedniego pliku. Sprawdzimy również podłączanie go pod Apache i automatyczne odnawianie.

Przygotowania

Aby wykonać poprawnie poniższe instrukcje potrzebne będzie spełnienie kilku poniższych wymagań.

Certbot na serwerze

Certbot jest rekomendowanym przez Let’s Encrypt klientem do generowania darmowych certyfikatów. Zapewnia konsolowy interfejs, który jest jednak prosty w użyciu. Te kilka poniższych kroków zakończą się pomyślnym utworzeniem certyfikatu SSL.

  1. Pobieramy certbota dla Windows z oficjalnej strony i instalujemy go na komputerze
  2. Upewniamy się, że użytkownik, na którego jesteśmy zalogowani będzie miał możliwość zapisu w katalogu C:\Certbot

Dostęp do strony przez port 80

Jeśli strona lub aplikacja korzysta z innego portu niż 80 to Let’s Encrypt nie uwierzytelni domeny. Konieczny jest publiczny dostęp.

Generowanie certyfikatu

Wstęp

Uruchamiamy CMD.exe lub PowerShell – koniecznie jako administrator. Wpisujemy kolejne komendy, rozpoczynając od inicjalizacji Certbota.

Po uruchomieniu mamy wybór, czy korzystamy z tymczasowego webservera, czy wykorzystamy działający już webserver. W tym przypadku wybieramy opcję nr 2 (wpisujemy 2 i zatwierdzamy enterem), ponieważ nasz serwer działa i nie chcemy go zatrzymywać w trakcie generowania certyfikatu.

Następnie wprowadzamy adres e-mail do powiadomień, zatwierdzamy i dalej wpisujemy A, aby zaakceptować warunki. Jako ostatni etap przygotowawczy przed sednem generowania certyfikatu zatwierdzamy (lub nie) newsletter.

Wybór domeny

Podajemy nazwę domeny, dla której generujemy certyfikat.

Podajemy nazwę domeny

Podajemy nazwę domeny

Podajemy ścieżkę katalogu głównego strony

Należy podać ścieżkę katalogu głównego. Dokładnie w tym miejscu Certbot wygeneruje specjalny katalog, do którego będzie próbowała odwołać się usługa certyfikująca Let’s Encrypt.

Podajemy ścieżkę katalogu głównego aplikacji

Podajemy ścieżkę katalogu głównego aplikacji

Wygenerowany certyfikat

Jeśli wszystko przebiegnie bez problemów, zostaniemy poinformowani o tym stosownym komunikatem.

Certyfikat Lets Encrypt został wygenerowany

Certyfikat Lets Encrypt został wygenerowany

Pliki certyfikatu (a właściwie symlinki do nich) znajdują się w katalogu: C:\Certbot\live\domena.

Certyfikat na dysku

Certyfikat na dysku

Teraz możemy zająć się podłączaniem certyfikatu pod Apache.

Podłączanie certyfikatu pod Apache

Jeśli wcześniej nie korzystaliśmy z certyfikatu SSL dla wybranej domeny na tym serwerze, upewnijmy się, że mamy odhaszowane następujące linie w pliku httpd.conf (główny plik ustawień Apache).

Zostaje jeszcze wprowadzenie zmian w https-vhosts.conf, czyli w pliku odpowiedzialnym za wirtualne hosty.

  • Linia 2 i 7 to nazwa naszej domeny.
  • Linie 4-6 to odwołania do wygenerowanych przez Let’s Encrypt plików.
  • Linie 8 i 9 to ścieżki do katalogu głównego strony lub aplikacji.

Po wprowadzeniu zmian restartujemy usługę Apache.

Sprawdzam!

Po otwarciu strony w przeglądarce, certyfikat jest aktywny.

Darmowy certyfikat SSL jest aktywny

Darmowy certyfikat SSL jest aktywny

Odnawianie domeny

Przy instalacji Certbota w Windowsie, dodał on zaplanowane zadanie, które automatycznie odnawia wszystkie wygasające certyfikaty.

Odnawianie certyfikatów SSL

Odnawianie certyfikatów SSL

Zawsze też można zrobić to samodzielnie za pomocą komendy:

Jeśli ważność certyfikatu będzie krótsza niż miesiąc, Certbot podejmie odpowiednie kroki aby samodzielnie i automatycznie go wygenerować.


Tagi:


2 odpowiedzi na “Generowanie, automatyczne odnawianie i podłączanie darmowych certyfikatów SSL od Let’s Encrypt w Apache”

  1. Kubba pisze:

    Rozumiem, że certyfikat wildcard również w ten sposób podłączę i przedłużę automatycznie? Jutro przetestuję i postaram się to wdrożyć jeśli się uda. Sporo roboty odchodzi przy tym jak się ma więcej subdomen / domen.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *