Jak wygenerować certyfikat Let's Encrypt w CentOS 7/8

For privacy reasons YouTube needs your permission to be loaded. For more details, please see our Polityka Prywatności.
I Accept

Jeśli chcesz uzyskać dostęp do swojej maszyny za pomocą FQDN (ang. fully qualified domain name) zacznij od poprawnego skonfigurowania usługi DNS.

Warto się też upewnić czy reguły naszej zapory zezwalają na połączenia przychodzące na porcie 80. Jest on wykorzystywany do weryfikacji domeny i wygenerowania certyfikatów.

1) Instalacja snapd i certbot

Snap jest dostępny dla CentOS 8 i CentOS 7, począwszy od wydania 7.6. Wchodzi w skład Extra Packages for Enterprise Linux (EPEL), więc na początek zainstaluj EPEL (jeśli jeszcze nie posiadasz).

Copy to Clipboard

Po dodaniu repozytorium EPEL do instalacji CentOS, zainstaluj pakiet snapd, aktywuj socket do komunikacji oraz stwórz powiązanie wymagane do poprawnego działania certbot.

Copy to Clipboard

Wykonaj następujące instrukcje w wierszu poleceń na komputerze, aby upewnić się, że masz najnowszą wersję snapd.

Copy to Clipboard

Jeśli masz zainstalowane jakiekolwiek pakiety Certbota za pomocą menedżera pakietów systemu operacyjnego, takiego jak apt, dnf lub yum, powinieneś je usunąć przed zainstalowaniem wykonaniem dalszych poleceń, aby upewnić się, że po uruchomieniu polecenia certbot, używany jest snap, a nie instalacja z pakietu systemu operacyjnego menedżer. Dokładne polecenie, aby to zrobić, zależy od systemu operacyjnego, ale typowe przykłady to sudo apt-get remove certbot, sudo dnf remove certbot lub sudo yum remove certbot.

Żeby zainstalować Certbota, w wierszu poleceń wykonaj:

Copy to Clipboard

Na koniec zobaczysz komunikat:

certbot 1.16.0 from Certbot Project (certbot-eff✓) installed

Po instalacji utwórzmy dowiązanie symboliczne, konieczne do uruchomienia Certbota.

Copy to Clipboard

2) Wygenerowanie certyfikatu

Na początek wybierz, jak chcesz uruchomić Certbota.

  • Jeśli twój serwer WWW nie jest aktualnie uruchomiony na tym komputerze.
    Zatrzymaj serwer WWW, a następnie uruchom poniższe polecenie, aby uzyskać certyfikat. Certbot tymczasowo uruchomi serwer WWW na twoim komputerze.
Copy to Clipboard
Jeśli serwer www jest włączony, otrzymasz błąd: Problem binding to port 80: Could not bind to IPv4 or IPv6. Najpierw wyłącz serwer, a następnie wykonaj polecenie lub korzystać z drugiej opcji generowania certyfikatu.
  • Muszę utrzymać uruchomiony serwer WWW.
    Jeśli masz serwer www, który już używa portu 80 i nie chcesz go zatrzymywać podczas działania Certbota, uruchom poniższe polecenie i postępuj zgodnie z instrukcjami w terminalu.
Copy to Clipboard

3) Automatyczne odnowienie certyfikatu

Żeby sprawdzić czy automatyczne odnowienie certyfikatów działa w Twojej konfiguracji wykonaj dry-run.

Copy to Clipboard

Jeśli dry-run pokazuje błędy (np. zajęty port 80) konieczne może być wykorzystanie haków (ang. hooks), które będą automatycznie wykonywane przed i/lub po każdej próbie odnowienia certyfikatów.

Jeśli dodałeś wspomniane automatyczne skrypty i wszystko jest w porządku, uruchom następującą linię, która doda zadanie cron do /etc/crontab:

Copy to Clipboard

Co prawda certbot wspomniał, że dodał to zadanie w tle, ale zawsze lepiej mieć pewność.

4) Pre & Post Hooks

4.1) Restart serwera www

Jeśli musisz np. zatrzymać serwer internetowy, aby uruchomić Certbota, będziesz chciał dodać haki przed i po, aby automatycznie zatrzymywać i uruchamiać serwer internetowy.

Wspomniane haki znajdują się w następujących katalogach:

  • /etc/letsencrypt/renewal-hooks/pre/ – zawiera pliki wykonywane PRZED odnowieniem
  • /etc/letsencrypt/renewal-hooks/post/ – zawiera pliki wykonywane PO odnowieniu

Dla przykładu, jeśli używasz Apache możesz dodać następujące pliki, które automatycznie zatrzymają Apache przed odnowieniem certyfikatów, a następnie uruchomią ponownie po zakończeniu procesu.

Copy to Clipboard

4.2) Dostęp do certyfikatów dla użytkowników innych niż root w Asterisk'u

Być może Twoja konfiguracja wymaga, żeby wykorzystywać certyfikaty, jako użytkownik inny niż root. Na przykład posiadasz serwer Asterisk'a i chcesz uruchomić TLS do rejestracji kont SIP, ale usługa działa jako użytkownik asterisk. W takiej sytuacji możesz po prostu utworzyć katalog do przechowywania certyfikatów, a następnie utworzyć skrypt (certbot post hook), który skopiuje nowo wygenerowane certyfikaty do wspomnianego katalogu i zmieni uprawnienia.

Copy to Clipboard

Oczywiście certbot jest bardzo potężnych narzędziem. Ten artykuł to tylko wstępna konfiguracja, która może być dostosowana do praktycznie każdego scenariusza.

Więcej informacji możesz oczywiście znaleźć na stronie producenta:
https://certbot.eff.org/

By Published On: 23 czerwca, 2021Categories: Przydatne porady, SamouczkiMożliwość komentowania Jak wygenerować certyfikat Let's Encrypt w CentOS 7/8 została wyłączonaTags: , , ,