Polski

Darmowy SSL Let's Encrypt dla Apache na AlmaLinux 9

2 min
Hosting VPS/VDS

Przeglądarki i wyszukiwarki oczekują HTTPS, a Let's Encrypt wystawia certyfikaty bez opłat. Na VPS Linux Infrawire z AlmaLinux 9 Certbot może uzyskać certyfikat, zmienić konfigurację Apache i sam go odnawiać. Te same kroki działają na Rocky Linux 9.

📋 Wymagania wstępne

  • VPS z AlmaLinux 9 z dostępem root lub sudo (IP i hasło w panelu klienta).
  • Domena example.com, której rekord A (oraz AAAA dla IPv6) wskazuje na VPS_IP. Najpierw poczekaj na propagację DNS.
  • Apache (httpd) obsługujący stronę przez HTTP na porcie 80.

1. Instalacja Apache i otwarcie zapory

Jeśli Apache nie jest jeszcze zainstalowany, zainstaluj go i uruchom. Następnie otwórz HTTP i HTTPS w firewalld; port 80 jest wymagany do walidacji Let's Encrypt.

Bash
dnf install -y httpd systemctl enable --now httpd firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload firewall-cmd --list-services

2. Utworzenie hosta wirtualnego dla domeny

Certbot szuka ServerName pasującego do domeny, więc utwórz osobny host wirtualny.

Bash
mkdir -p /var/www/example.com/public_html echo "Hello" > /var/www/example.com/public_html/index.html

Utwórz plik /etc/httpd/conf.d/example.com.conf:

Apache
1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5</VirtualHost>

Sprawdź składnię i przeładuj:

Bash
apachectl configtest systemctl reload httpd

3. Instalacja Certbota i mod_ssl

Certbot pochodzi z repozytorium EPEL. mod_ssl dostarcza moduł TLS dla Apache i domyślny certyfikat, którego httpd potrzebuje do nasłuchu na porcie 443.

Bash
dnf install -y epel-release dnf install -y certbot python3-certbot-apache mod_ssl

4. Zamówienie certyfikatu

Uruchom Certbota z wtyczką Apache. Zweryfikuje domenę przez HTTP, zapisze nowy host wirtualny *-le-ssl.conf i może dodać przekierowanie z HTTP na HTTPS.

Bash
certbot --apache -d example.com -d www.example.com

Podaj prawdziwy adres e-mail (służy do ostrzeżeń o wygaśnięciu), zaakceptuj warunki i wybierz przekierowanie, gdy zostaniesz zapytany. Każda nazwa podana z -d musi wskazywać na ten serwer, inaczej walidacja się nie powiedzie.

Jeśli SELinux działa w trybie enforcing (domyślnie), w standardowej konfiguracji nie trzeba nic zmieniać. Nie wyłączaj go, aby obejść błąd.

5. Sprawdzenie automatycznego odnawiania

Certyfikaty Let's Encrypt ważne są 90 dni. Na AlmaLinux 9 pakiet instaluje timer systemd, który uruchamia się dwa razy dziennie i odnawia tylko certyfikaty bliskie wygaśnięcia.

Bash
systemctl list-timers | grep certbot systemctl status certbot-renew.timer

Jeśli timera nie ma na liście, włącz go:

Bash
systemctl enable --now certbot-renew.timer

Zasymuluj odnowienie bez ruszania prawdziwego certyfikatu:

Bash
certbot renew --dry-run

Ostatni wiersz powinien informować, że wszystkie symulowane odnowienia się powiodły. Po prawdziwym odnowieniu Apache jest przeładowywany automatycznie.

Weryfikacja

Bash
certbot certificates curl -I https://example.com curl -I http://example.com

Pierwsze polecenie wyświetla domeny i datę wygaśnięcia. Żądanie HTTPS musi zwrócić 200, a żądanie HTTP powinno odpowiedzieć przekierowaniem 301 na adres HTTPS. W przeglądarce kłódka powinna pokazywać ważny certyfikat wystawiony przez Let's Encrypt. Cały łańcuch zobaczysz poleceniem openssl s_client -connect example.com:443 -servername example.com.

Rozwiązywanie problemów

  • Nieudane wyzwanie lub przekroczony czas podczas walidacji: DNS jeszcze nie wskazuje na serwer albo port 80 jest zablokowany. Sprawdź dig +short example.com, firewall-cmd --list-services i każdą zaporę przed VPS.
  • Certbot nie znajduje pasującego hosta wirtualnego: ServerName lub ServerAlias w /etc/httpd/conf.d/ nie zgadza się z podaną domeną. Popraw to, uruchom apachectl configtest i spróbuj ponownie. Możesz też użyć certbot certonly --apache i skonfigurować ścieżki samodzielnie.
  • Za dużo certyfikatów lub nieudanych walidacji (limit zapytań): Let's Encrypt ogranicza powtarzane próby. Najpierw przetestuj certbot --apache --dry-run i poczekaj przed ponowną próbą.
  • Strona niedostępna na porcie 443 po instalacji: HTTPS nie jest otwarty w firewalld lub httpd nie został przeładowany. Uruchom firewall-cmd --permanent --add-service=https, firewall-cmd --reload i systemctl restart httpd.

🔐 Twoja strona Apache na AlmaLinux 9 działa teraz po HTTPS i sama odnawia certyfikat.

Bądź na bieżąco z najnowszymi ofertami, zniżkami i promocjami specjalnymi.

Zobacz promocje

Używamy plików cookie

Używamy plików cookie analitycznych, aby ulepszać nasz serwis. Nie sprzedajemy danych stronom trzecim. Więcej w polityce prywatności.