webh.pl

Darmowy SSL na VPS: Certbot (Nginx, Apache)

Jak wystawić darmowy certyfikat Let's Encrypt na VPS: Certbot na Nginx i Apache, automatyczne odnawianie oraz obsługa SSL z poziomu panelu.

  • czytania
  • Zaktualizowano:
SSL i HTTPS Bezpieczeństwo
Serwery VPS

Na serwerze VPS to Ty zarządzasz certyfikatem SSL, ale nie musisz za niego płacić: Let’s Encrypt wystawia certyfikaty za darmo, a Certbot pobiera je i odnawia automatycznie. Jeśli korzystasz z panelu hostingowego na VPS, obsługa SSL jest zwykle wbudowana i sprowadza się do kilku kliknięć. Ten poradnik pokazuje obie drogi: Przez panel i ręcznie Certbotem na Nginx oraz Apache.

Zanim zaczniesz

Certyfikat wystawisz dopiero, gdy spełnione są trzy warunki:

  • Domena wskazuje na adres IP Twojego VPS. Dodaj rekord A kierujący domenę (i www) na IP serwera, jak opisujemy w artykule o rekordach DNS. Adres IP serwera znajdziesz zgodnie z artykułem o adresach IP na VPS.
  • Działa serwer WWW (Nginx lub Apache) obsługujący Twoją domenę. Podstawową konfigurację opisujemy w artykule o stawianiu LEMP/LAMP.
  • Porty 80 i 443 są otwarte w firewallu. Let’s Encrypt weryfikuje domenę przez port 80, a HTTPS działa na 443. Jak otworzyć porty, opisujemy w artykule o firewallu na VPS.

Informacja

Weryfikacja Let’s Encrypt sprawdza, czy domena faktycznie kieruje na Twój serwer. Dlatego najpierw poczekaj na propagację DNS (do 24 godzin), a dopiero potem wystawiaj certyfikat.

Najprościej: Przez panel hostingowy

Jeśli zainstalowałeś na VPS panel hostingowy (np. ISPmanager), obsługa darmowego SSL jest w nim wbudowana. Większość paneli wystawia i odnawia certyfikat Let’s Encrypt automatycznie, bez pracy w terminalu.

W panelu wystarczy zwykle wskazać domenę i włączyć dla niej certyfikat Let’s Encrypt, a panel zajmie się resztą: Weryfikacją, konfiguracją serwera WWW i późniejszym odnawianiem. Instalację samego panelu opisujemy w artykule o ISPmanager.

Wskazówka

Panel to dobry wybór, gdy hostujesz kilka domen i wolisz graficzny interfejs zamiast komend. Jeśli zarządzasz serwerem z linii poleceń, użyj Certbota w sposób opisany niżej.

Certbot ręcznie: Instalacja

Certbot to oficjalne narzędzie Let’s Encrypt. Zalecaną metodą instalacji jest pakiet snap, który działa tak samo na różnych systemach i zapewnia aktualną wersję:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Alternatywnie zainstalujesz Certbota z repozytorium systemu (np. apt install certbot na Debianie i Ubuntu albo dnf install certbot na AlmaLinux). Do automatycznej konfiguracji serwera WWW dołóż wtyczkę odpowiednią dla Twojego serwera, jak w przykładach poniżej.

Certbot na Nginx

  1. Zainstaluj wtyczkę Certbota dla Nginx (przy instalacji z repozytorium systemu), np. sudo apt install python3-certbot-nginx.
  2. Wystaw certyfikat, podając swoje domeny:
sudo certbot --nginx -d twojadomena.pl -d www.twojadomena.pl

Certbot sam wykryje konfigurację Nginx, wystawi certyfikat i dopisze go do ustawień serwera. W trakcie zapyta, czy wymusić przekierowanie ruchu z http na https. Wybierz tę opcję, żeby cały ruch szedł szyfrowanym połączeniem.

Certbot na Apache

  1. Zainstaluj wtyczkę Certbota dla Apache, np. sudo apt install python3-certbot-apache.
  2. Wystaw certyfikat:
sudo certbot --apache -d twojadomena.pl -d www.twojadomena.pl

Certbot skonfiguruje wirtualny host Apache, podłączy certyfikat i, na życzenie, ustawi przekierowanie na HTTPS. Po zakończeniu strona działa pod adresem https.

Automatyczne odnawianie

Certyfikaty Let’s Encrypt są ważne 90 dni, ale nie musisz pilnować terminu. Certbot przy instalacji dodaje zadanie (systemowy timer lub wpis crona), które odnawia certyfikat, zanim wygaśnie. Działanie tego mechanizmu sprawdzisz poleceniem testowym:

sudo certbot renew --dry-run

Jeśli test przejdzie bez błędów, odnawianie zadziała automatycznie. Nie musisz nic więcej robić.

Najczęstsze problemy

  • Weryfikacja się nie udaje: zwykle domena jeszcze nie wskazuje na serwer (trwa propagacja DNS) albo port 80 jest zamknięty w firewallu. Sprawdź rekord A i reguły zapory zgodnie z artykułem o firewallu.
  • Błąd o przekroczeniu limitu: Let’s Encrypt ogranicza liczbę prób wystawienia certyfikatu dla domeny w krótkim czasie. Jeśli wielokrotnie próbowałeś “na próbę”, odczekaj i przy testach korzystaj z --dry-run, który nie zużywa limitu.
  • Certyfikat działa, ale strona ładuje treści po http: to mieszana zawartość (mixed content). Upewnij się, że strona odwołuje się do zasobów przez https, i włącz wymuszenie HTTPS.

Najczęstsze pytania

Czy darmowy certyfikat jest tak samo bezpieczny jak płatny?

Tak, pod względem szyfrowania. Certyfikat Let’s Encrypt zapewnia takie samo szyfrowanie połączenia jak certyfikaty komercyjne. Płatne certyfikaty różnią się głównie dodatkową weryfikacją organizacji i gwarancjami, a nie siłą szyfrowania.

Czy muszę odnawiać certyfikat ręcznie co 90 dni?

Nie. Certbot dodaje zadanie, które odnawia certyfikat automatycznie przed terminem. Działanie sprawdzisz poleceniem certbot renew --dry-run.

Mam panel hostingowy na VPS, czy potrzebuję Certbota?

Nie. Większość paneli (np. ISPmanager) obsługuje darmowy SSL out of the box: Wystawia i odnawia certyfikat Let’s Encrypt z poziomu interfejsu. Certbot przydaje się, gdy zarządzasz serwerem bez panelu, z linii poleceń.

Czym to się różni od SSL na hostingu współdzielonym?

Na hostingu współdzielonym certyfikat generuje się automatycznie i nie musisz nic instalować, co opisujemy w artykule o darmowym SSL. Na VPS odpowiadasz za to sam, ręcznie Certbotem albo przez panel hostingowy.