freessl.pl English Zaloguj się Wygeneruj certyfikat

Jak zainstalować certyfikat SSL na serwerze z nginx lub Apache

Stan: październik 2026 · czytanie około 2 min

W skrócie

Skopiuj privkey.pem i fullchain.pem na serwer, wskaż je w konfiguracji nginx (ssl_certificate, ssl_certificate_key) albo Apache (SSLCertificateFile, SSLCertificateKeyFile) i przeładuj serwer.

Dla własnego serwera (VPS albo serwer dedykowany) z nginx lub Apache. Potrzebujesz dostępu do serwera przez SSH i uprawnień administratora (sudo).

Potrzebne pliki

privkey.pem i fullchain.pem.

Wgrywaj certyfikat z trybu produkcyjnego. Certyfikat z trybu testowego służy tylko do sprawdzenia procesu: przeglądarki mu nie ufają, a część paneli w ogóle go nie przyjmie.

Krok po kroku

  1. Skopiuj oba pliki na serwer. Z Windows najprościej programem WinSCP, a z terminala poleceniem:
    scp privkey.pem fullchain.pem uzytkownik@twojserwer:~
  2. Na serwerze przenieś je do osobnego katalogu i zabezpiecz klucz prywatny:
    sudo mkdir -p /etc/ssl/twojadomena
    sudo mv ~/privkey.pem ~/fullchain.pem /etc/ssl/twojadomena/
    sudo chown root:root /etc/ssl/twojadomena/*.pem
    sudo chmod 600 /etc/ssl/twojadomena/privkey.pem
    Na AlmaLinux, Rocky Linux i innych systemach z SELinux dodaj jeszcze sudo restorecon -Rv /etc/ssl/twojadomena. Bez tego serwer może nie mieć dostępu do przeniesionych plików.
  3. nginx: w bloku server dla Twojej domeny dodaj:
    listen 443 ssl;
    ssl_certificate     /etc/ssl/twojadomena/fullchain.pem;
    ssl_certificate_key /etc/ssl/twojadomena/privkey.pem;
    Jeśli w bloku jest linia listen [::]:80;, dodaj też listen [::]:443 ssl;. Sprawdź konfigurację poleceniem sudo nginx -t i przeładuj serwer: sudo systemctl reload nginx.
  4. Apache: najpierw włącz moduł SSL. Na Debianie i Ubuntu: sudo a2enmod ssl, potem sudo systemctl restart apache2. Na AlmaLinux i Rocky Linux zainstaluj go: sudo dnf install mod_ssl. W bloku <VirtualHost *:443> dla Twojej domeny dodaj:
    SSLEngine on
    SSLCertificateFile    /etc/ssl/twojadomena/fullchain.pem
    SSLCertificateKeyFile /etc/ssl/twojadomena/privkey.pem
    Jeśli takiego bloku nie ma, skopiuj blok <VirtualHost *:80> tej domeny, w kopii zmień 80 na 443 i dopisz te trzy linie. Jeśli w bloku jest już linia SSLCertificateChainFile, usuń ją. Sprawdź konfigurację: sudo apachectl configtest, potem przeładuj serwer: sudo systemctl reload apache2 (na AlmaLinux i Rocky Linux: sudo systemctl reload httpd).

Sprawdzenie

Otwórz swoją stronę przez https:// i kliknij kłódkę (albo ikonę ustawień) obok adresu. Szczegóły certyfikatu powinny pokazać wystawcę Let's Encrypt i datę ważności zgodną z panelem. Jeśli przeglądarka nadal pokazuje stary certyfikat, odczekaj kilka minut i odśwież stronę.

Jeśli zamiast strony widzisz ostrzeżenie, kod błędu wyjaśniamy na stronie „Połączenie nie jest prywatne”. Jeśli strona otwiera się przez https, ale wygląda źle albo coś nie działa, zobacz mieszana zawartość. Na koniec włącz przekierowanie z http na https, żeby wszyscy trafiali na bezpieczną wersję.

Dobrze wiedzieć

  • Port 443 musi być otwarty w zaporze serwera i u dostawcy. Na Ubuntu z ufw: sudo ufw allow 443/tcp. Na AlmaLinux i Rocky Linux: sudo firewall-cmd --permanent --add-service=https, potem sudo firewall-cmd --reload.
  • Apache starszy niż 2.4.8 nie przyjmuje łańcucha w SSLCertificateFile. Wtedy: SSLCertificateFile wskazuje cert.pem, a dodatkowa linia SSLCertificateChainFile wskazuje chain.pem. Wersję sprawdzisz poleceniem apachectl -v.

Przy odnowieniu

Wgraj nowe pliki tak samo jak za pierwszym razem: kroki 1 i 2 razem z poleceniami chown i chmod (a na systemach z SELinux także restorecon), bo nowe pliki przynoszą własne uprawnienia. Potem przeładuj serwer (reload). Konfiguracji nie trzeba zmieniać.

Panele hostingów co jakiś czas się zmieniają. Jeśli coś wygląda inaczej niż w opisie, napisz na kontakt@freessl.pl, a poprawimy instrukcję.

Czytaj dalej

Gotowy? Certyfikat w kilka minut, bez opłat.Wygeneruj certyfikat