Jak skonfigurować SSL na hostingu — krok po kroku
Opublikowano: 9 kwietnia 2026 · Kategoria: Hosting, Bezpieczeństwo
HTTPS to dziś standard, nie luksus — Google obniża ranking stron bez SSL, a przeglądarki wyświetlają ostrzeżenie "Niebezpieczne" dla stron HTTP. Dobra wiadomość: darmowy certyfikat SSL przez Let's Encrypt dostaniesz w kilka minut przez panel hostingowy. W tym artykule pokazujemy krok po kroku jak go zainstalować, wymusić HTTPS i naprawić problemy z mixed content.
Rodzaje certyfikatów SSL
| Typ | Weryfikacja | Czas wydania | Cena | Kiedy stosować |
|---|---|---|---|---|
| DV (Domain Validation) | Tylko domena | Minuty | Darmowy (Let's Encrypt) lub od 50 zł/rok | Strony www, blogi, sklepy |
| OV (Organization Validation) | Domena + firma | 1–3 dni | Od 200–500 zł/rok | Firmy, portale B2B |
| EV (Extended Validation) | Domena + pełna weryfikacja organizacji | 3–7 dni | Od 500 zł/rok | Banki, instytucje finansowe |
| Wildcard (*.domena.pl) | DV lub OV | Minuty–dni | Od 150 zł/rok | Wiele subdomen tej samej domeny |
Krok 1: Let's Encrypt przez cPanel (AutoSSL)
Większość hostingów z cPanel ma AutoSSL — automatycznie instaluje i odnawia Let's Encrypt dla wszystkich domen na koncie.
-
Zaloguj się do cPanel (zwykle
twojadomena.pl/cpanellub port 2083). - Przejdź do sekcji Bezpieczeństwo → SSL/TLS lub Let's Encrypt SSL.
- Kliknij Run AutoSSL lub wybierz domeny do zabezpieczenia i kliknij Issue.
- Po kilku minutach certyfikat jest zainstalowany. Sprawdź w SSL/TLS → Zarządzaj witrynami SSL.
- AutoSSL automatycznie odnawia certyfikat co 60–70 dni.
Krok 1 (alternatywnie): Let's Encrypt przez DirectAdmin
- Zaloguj się do DirectAdmin (port 2222).
- Przejdź do Account Manager → SSL Certificates.
- Wybierz opcję Free & automatic certificate from Let's Encrypt.
- Zaznacz domenę i subdomeny (np. www.twojadomena.pl) → kliknij Save.
- DirectAdmin wydaje certyfikat i instaluje go automatycznie. Odnawianie odbywa się bez ingerencji.
Krok 1 (VPS): Certbot — Let's Encrypt bez panelu
# Ubuntu/Debian — instalacja Certbot sudo apt update sudo apt install certbot python3-certbot-apache # Dla Apache # lub sudo apt install certbot python3-certbot-nginx # Dla Nginx # Wydaj certyfikat i automatycznie skonfiguruj Apache sudo certbot --apache -d twojadomena.pl -d www.twojadomena.pl # Wydaj certyfikat i automatycznie skonfiguruj Nginx sudo certbot --nginx -d twojadomena.pl -d www.twojadomena.pl # Tylko wydaj certyfikat (bez edycji konfiguracji serwera) sudo certbot certonly --webroot -w /var/www/twojadomena.pl/public_html \ -d twojadomena.pl -d www.twojadomena.pl # Sprawdź automatyczne odnawianie sudo certbot renew --dry-run
Krok 2: Instalacja zakupionego certyfikatu SSL
Jeśli zakupiłeś certyfikat (OV, EV, Wildcard) od CA (np. Sectigo, DigiCert), otrzymasz: plik .crt (certyfikat), plik .key (klucz prywatny) i plik ca-bundle.crt (łańcuch pośrednich CA).
# cPanel: Instalacja przez SSL/TLS Manager # 1. SSL/TLS → Manage SSL Sites # 2. Wybierz domenę # 3. Wklej: # - Certificate (CRT): zawartość pliku twojadomena.crt # - Private Key (KEY): zawartość pliku twojadomena.key # - Certificate Authority Bundle (CABUNDLE): zawartość ca-bundle.crt # 4. Kliknij "Install Certificate" # VPS z Apache: ręczna instalacja sudo mkdir -p /etc/ssl/twojadomena sudo cp twojadomena.crt /etc/ssl/twojadomena/ sudo cp twojadomena.key /etc/ssl/twojadomena/ sudo cp ca-bundle.crt /etc/ssl/twojadomena/ # W konfiguracji Apache VirtualHost (port 443): # SSLCertificateFile /etc/ssl/twojadomena/twojadomena.crt # SSLCertificateKeyFile /etc/ssl/twojadomena/twojadomena.key # SSLCACertificateFile /etc/ssl/twojadomena/ca-bundle.crt
Krok 3: Wymuszenie HTTPS — redirect w .htaccess
Po zainstalowaniu certyfikatu strona działa pod HTTPS, ale użytkownicy wchodzący przez HTTP
nie są automatycznie przekierowani. Dodaj redirect do pliku .htaccess w katalogu głównym domeny:
# .htaccess — wymuszenie HTTPS (dodaj na początku pliku)
RewriteEngine On
# Przekieruj HTTP na HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Opcjonalnie: usuń www (https://www.domena.pl → https://domena.pl)
# RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
# RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# Lub dodaj www (https://domena.pl → https://www.domena.pl)
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L] Ważne: Nie dodawaj redirectu HTTP→HTTPS przed zainstalowaniem certyfikatu —
stworzysz pętlę przekierowań lub błąd SSL. Najpierw certyfikat, potem redirect. Sprawdź też
czy redirect działa przez curl -I http://twojadomena.pl — oczekuj odpowiedzi 301.
Krok 4: Naprawa mixed content
Mixed content to najczęstszy problem po przejściu na HTTPS. Diagnoza i naprawa:
# Diagnoza: szukaj zasobów HTTP w źródle strony curl -s https://twojadomena.pl | grep -E 'src="http:|href="http:' # WordPress: nagłówek wymuszający upgrade HTTP→HTTPS dla zasobów # .htaccess lub konfiguracja serwera Header always set Content-Security-Policy "upgrade-insecure-requests"
Dla WordPress dostępne są dedykowane narzędzia:
- Really Simple SSL (darmowy plugin) — automatycznie zmienia HTTP→HTTPS przez PHP output buffering. Najprostsze rozwiązanie — aktywuj plugin i gotowe.
- Better Search Replace — masowa zamiana URL w bazie danych:
http://twojadomena.pl→https://twojadomena.pl. Trwałe rozwiązanie, bez pluginów runtime. - WP-CLI: przez terminal:
wp search-replace 'http://twojadomena.pl' 'https://twojadomena.pl' --all-tables
Krok 5: Weryfikacja — SSL Labs
# Sprawdź certyfikat przez SSL Labs (ocena A/A+/B/F) # Otwórz w przeglądarce: # https://www.ssllabs.com/ssltest/analyze.html?d=twojadomena.pl # Sprawdź datę wygaśnięcia certyfikatu z terminala echo | openssl s_client -connect twojadomena.pl:443 -servername twojadomena.pl 2>/dev/null \ | openssl x509 -noout -dates # Sprawdź łańcuch certyfikatów echo | openssl s_client -connect twojadomena.pl:443 -showcerts 2>/dev/null | grep "s:" # Test przez curl (powinien zwrócić 200, nie błąd SSL) curl -I https://twojadomena.pl
Ocena A na SSL Labs to minimum. Ocena A+ wymaga dodatkowych
nagłówków bezpieczeństwa jak Strict-Transport-Security (HSTS) z długim max-age i preload.