15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
10.10.2024

Jak zainstalować certyfikat SSL na swojej stronie WordPress

Certyfikat SSL (Secure Sockets Layer / TLS) to kryptograficzne powiązanie protokołu, które szyfruje dane przesyłane między serwerem WWW a przeglądarką. W witrynie WordPress instalacja SSL oznacza, że każde żądanie HTTP jest przekierowywane do HTTPS, przeglądarka wyświetla kłódkę, a wrażliwe dane — dane logowania, przesyłane formularze, dane płatności — są przesyłane przez zaszyfrowany kanał, a nie w postaci zwykłego tekstu.

W przypadku WordPress instalacja SSL obejmuje trzy odrębne warstwy: udostępnienie certyfikatu na poziomie serwera lub hostingu, skonfigurowanie samego WordPress do serwowania wszystkich zasobów przez HTTPS oraz wyeliminowanie ostrzeżeń o mieszanej zawartości, które po cichu naruszają bezpieczny kontekst. Pominięcie któregokolwiek z tych elementów spowoduje, że witryna będzie wyświetlać uszkodzoną kłódkę, wywoływać ostrzeżenia bezpieczeństwa przeglądarki lub całkowicie nie przejdzie walidacji HTTPS.

Krok 1: Wybierz odpowiedni typ certyfikatu SSL

Nie wszystkie certyfikaty SSL oferują ten sam poziom walidacji lub sygnał zaufania. Wybór niewłaściwego typu to częsty błąd, który marnuje pieniądze lub, w przeciwnym kierunku, niedostatecznie chroni witrynę obsługującą wrażliwe transakcje.

Porównanie poziomów walidacji

Typ certyfikatuPoziom walidacjiCzas wydaniaNajlepszy dlaSygnał zaufania przeglądarki
**Domain Validated (DV)**Tylko własność domenyMinuty do godzinBlogi, strony osobiste, środowiska deweloperskieIkona kłódki
**Organization Validated (OV)**Domena + podmiot prawny1–3 dni roboczeStrony firmowe, portale SaaSKłódka + dane organizacji w certyfikacie
**Extended Validation (EV)**Pełna weryfikacja prawna i operacyjna1–5 dni roboczychE-commerce, bankowość, portale wysokiego zaufaniaKłódka + nazwa organizacji (niektóre przeglądarki)
**Wildcard DV/OV**Domena + wszystkie subdomenyMinuty do dniWdrożenia z wieloma subdomenamiKłódka
**Multi-Domain (SAN)**Wiele odrębnych domenMinuty do dniAgencje zarządzające wieloma domenamiKłódka

Darmowy vs. płatny SSL

Let's Encrypt wydaje bezpłatne, automatyczne certyfikaty DV ważne przez 90 dni z obsługą automatycznego odnawiania przez protokół ACME. Jest zaufany przez wszystkie główne przeglądarki i jest właściwym wyborem dla zdecydowanej większości witryn WordPress. Krótki okres ważności jest celowy — wymusza automatyzację i zmniejsza okno ryzyka w przypadku skompromitowanego certyfikatu.

Darmowy SSL Cloudflare działa inaczej: szyfruje połączenie między odwiedzającym a krawędzią Cloudflare, ale połączenie między Cloudflare a Twoim serwerem źródłowym może nadal być niezaszyfrowane, chyba że skonfigurujesz tryb Full (Strict) z ważnym certyfikatem źródłowym. Jest to często niezrozumiany przypadek brzegowy, który stwarza fałszywe poczucie bezpieczeństwa.

Płatne certyfikaty od komercyjnych CA (DigiCert, Sectigo, GlobalSign) są niezbędne, gdy potrzebujesz walidacji OV lub EV, gwarancji lub konkretnej konfiguracji SAN/Wildcard nieobsługiwanej przez Let's Encrypt.

Jeśli chcesz zakupić zaufany certyfikat dla swojej domeny, AlexHost oferuje Certyfikaty SSL z prostym procesem wydawania i zarządzania bezpośrednio z panelu konta.

Krok 2: Zainstaluj certyfikat SSL na poziomie hostingu

Certyfikat musi być zainstalowany na serwerze WWW, zanim WordPress będzie mógł serwować odpowiedzi HTTPS. Metoda zależy od środowiska hostingowego.

Instalacja SSL przez cPanel (hosting współdzielony i VPS)

cPanel jest najpopularniejszym panelem sterowania dla środowisk współdzielonych i zarządzanych. Jeśli Twój host używa AutoSSL (opartego na Sectigo) lub natywnie obsługuje Let's Encrypt, jedno kliknięcie automatycznie udostępnia i odnawia certyfikat.

Ręczne kroki instalacji, gdy posiadasz pliki certyfikatu od CA:

  1. Zaloguj się do cPanel i przejdź do Security > SSL/TLS.
  2. Kliknij Manage SSL Sites.
  3. Wybierz docelową domenę z listy rozwijanej.
  4. Wklej zawartość trzech plików w odpowiednie pola:
  • Certificate (CRT): Podpisany certyfikat od Twojego CA.
  • Private Key (KEY): Wygenerowany podczas tworzenia CSR — nigdy go nie udostępniaj.
  • Certificate Authority Bundle (CABUNDLE): Certyfikaty pośredniej łańcucha.
  1. Kliknij Install Certificate.

Jeśli uruchamiasz WordPress na VPS z cPanel, AutoSSL zazwyczaj obsługuje to automatycznie dla wszystkich domen w WHM. Sprawdź w WHM > SSL/TLS > Manage AutoSSL, czy domena jest objęta certyfikatem i czy certyfikat nie jest w stanie oczekującym lub błędu.

Instalacja SSL na VPS z Apache (metoda ręczna)

Na samodzielnie zarządzanym Linux VPS z Apache proces wymaga bezpośredniej edycji konfiguracji wirtualnego hosta.

Instalacja Certbot (klient Let's Encrypt) na Debian/Ubuntu:

sudo apt update
sudo apt install certbot python3-certbot-apache -y

Automatyczne uzyskanie i instalacja certyfikatu:

sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

Certbot modyfikuje konfigurację wirtualnego hosta Apache, instaluje certyfikat i konfiguruje zadanie cron lub timer systemd do automatycznego odnawiania. Sprawdź, czy timer odnawiania jest aktywny:

sudo systemctl status certbot.timer

Dla Nginx na VPS:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Ręczna instalacja certyfikatu na Apache (przy użyciu płatnego certyfikatu CA):

Umieść pliki certyfikatu w bezpiecznym katalogu, a następnie edytuj wirtualny host:

<VirtualHost *:443>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/yourdomain.crt
    SSLCertificateKeyFile   /etc/ssl/private/yourdomain.key
    SSLCertificateChainFile /etc/ssl/certs/yourdomain_ca_bundle.crt
</VirtualHost>

Uruchom ponownie Apache, aby zastosować zmiany:

sudo systemctl restart apache2

Jeśli zarządzasz instalacją WordPress o dużym ruchu na Serwerze Dedykowanym, masz pełną kontrolę nad zestawami szyfrów, nagłówkami HSTS i zszywaniem OCSP — konfiguracje, które nie są możliwe na hostingu współdzielonym.

Instalacja SSL na VPS z Nginx (metoda ręczna)

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate     /etc/ssl/certs/yourdomain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 1.1.1.1 valid=300s;

    root /var/www/html;
    index index.php;
}

Przeładuj Nginx po edycji:

sudo nginx -t && sudo systemctl reload nginx

Krok 3: Wymuś HTTPS na poziomie serwera za pomocą przekierowania 301

Przed zmianą ustawień WordPress wymuś przekierowanie HTTP na HTTPS na poziomie serwera. Jest to bardziej niezawodne niż poleganie wyłącznie na WordPress lub wtyczce i zapobiega ładowaniu przez przeglądarkę wersji HTTP.

Apache: .htaccess Przekierowanie

Otwórz plik .htaccess (znajdujący się w katalogu głównym WordPress, zazwyczaj /var/www/html/.htaccess lub dostępny przez cPanel File Manager) i dodaj następujący blok powyżej istniejących reguł przepisywania WordPress:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Krytyczna pułapka: Jeśli umieścisz ten blok *po* znaczniku # BEGIN WordPress, może zostać nadpisany przez aktualizacje rdzenia WordPress. Zawsze umieszczaj reguły przekierowania na poziomie serwera powyżej bloku zarządzanego przez WordPress.

Nginx: Przekierowanie bloku serwera

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

Nagłówek HSTS (zaawansowany, zalecany)

Gdy masz pewność, że konfiguracja HTTPS jest stabilna, dodaj nagłówek HTTP Strict Transport Security, aby poinstruować przeglądarki, aby nigdy nie próbowały połączenia HTTP:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Ostrzeżenie: Nie włączaj HSTS z preload dopóki nie masz pewności, że każda subdomena ma również ważny certyfikat SSL. Preloading jest nieodwracalny w krótkim terminie i spowoduje uszkodzenie subdomen, które nie mają skonfigurowanego HTTPS.

Krok 4: Zaktualizuj WordPress, aby serwował całą zawartość przez HTTPS

Po zainstalowaniu certyfikatu i skonfigurowaniu przekierowania na poziomie serwera, sam WordPress musi zostać poinformowany o generowaniu adresów URL HTTPS dla wszystkich wewnętrznych linków, zasobów i punktów końcowych API.

Opcja A: Ręczna aktualizacja adresów URL witryny WordPress

  1. Przejdź do Ustawienia > Ogólne w panelu administracyjnym WordPress.
  2. Zmień zarówno Adres WordPress (URL), jak i Adres witryny (URL) z http:// na https://.
  3. Kliknij Zapisz zmiany.

WordPress wyloguje Cię natychmiast po zapisaniu. Zaloguj się ponownie używając adresu URL HTTPS.

Opcja B: Aktualizacja adresów URL przez wp-config.php

Jeśli nie możesz uzyskać dostępu do panelu administracyjnego lub preferujesz podejście oparte na kodzie, dodaj te linie do wp-config.php przed wierszem /* That's all, stop editing! */:

define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');

Opcja C: Aktualizacja zakodowanych na stałe adresów URL HTTP w bazie danych

WordPress przechowuje adresy URL w bazie danych, w tym zserializowane dane w tabelach meta postów i opcji. Proste wyszukiwanie i zastępowanie w surowym SQL może uszkodzić zserializowane tablice. Użyj WP-CLI do bezpiecznego zastępowania z obsługą serializacji:

wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --skip-columns=guid --all-tables

Flaga --skip-columns=guid zachowuje identyfikatory GUID postów, które nie powinny być zmieniane zgodnie z najlepszymi praktykami WordPress. Uruchom to z katalogu głównego WordPress z odpowiednimi poświadczeniami bazy danych skonfigurowanymi w wp-config.php.

Alternatywnie, wtyczka Better Search Replace wykonuje tę samą operację przez interfejs administracyjny z obsługą serializacji.

Krok 5: Napraw ostrzeżenia o mieszanej zawartości

Ostrzeżenie o mieszanej zawartości pojawia się, gdy strona HTTPS ładuje jeden lub więcej zasobów (obrazy, skrypty, arkusze stylów, iframes) przez HTTP. Narusza to bezpieczny kontekst, usuwa kłódkę i w niektórych przypadkach powoduje, że przeglądarki całkowicie blokują zasób.

Diagnozowanie mieszanej zawartości

Otwórz narzędzia deweloperskie przeglądarki (F12), przejdź do zakładki Konsola i szukaj ostrzeżeń z prefiksem Mixed Content:. Komunikat wskaże dokładny adres URL zasobu powodującego problem.

Alternatywnie użyj narzędzia Why No Padlock? lub uruchom skan SSL Labs, aby uzyskać pełny raport.

Naprawianie mieszanej zawartości: metoda wtyczkowa

Really Simple SSL to najszerzej stosowana wtyczka do tego celu. Po aktywacji:

  • Ustawia zmienną serwera HTTPS, aby wymusić rozpoznawanie bezpiecznego połączenia przez WordPress.
  • Dodaje filtr zawartości oparty na JavaScript do przepisywania adresów URL HTTP w locie.
  • Opcjonalnie czyści reguły przepisywania i aktualizuje adres URL witryny.

SSL Insecure Content Fixer oferuje bardziej szczegółową kontrolę, pozwalając wybrać między prostym zastępowaniem bufora wyjściowego a głębszym podejściem opartym na hookach filtrów WordPress — przydatne, gdy metoda JavaScript Really Simple SSL powoduje problemy z renderowaniem w przypadku niektórych kreatorów stron.

Naprawianie mieszanej zawartości: metoda ręczna

W przypadku zakodowanych na stałe adresów URL HTTP w plikach motywu lub niestandardowych wtyczkach, przeszukaj katalog motywu:

grep -r "http://yourdomain.com" /var/www/html/wp-content/themes/your-theme/

Zastąp wszystkie wystąpienia przez https:// lub, lepiej, użyj adresów URL relatywnych do protokołu (//yourdomain.com/...) dla zasobów zewnętrznych, gdzie nie możesz zagwarantować dostępności HTTPS.

W przypadku osadzonych mediów przesłanych przed migracją SSL, uruchom polecenie WP-CLI search-replace z Kroku 4, jeśli jeszcze tego nie zrobiłeś, ponieważ adresy URL załączników obrazów są przechowywane w tabelach wp_posts i wp_postmeta.

Krok 6: Zweryfikuj instalację SSL

Nigdy nie zakładaj, że instalacja się powiodła — weryfikuj ją systematycznie.

Test SSL Labs

Przejdź do https://www.ssllabs.com/ssltest/ i wprowadź swoją domenę. Prawidłowo skonfigurowana witryna WordPress powinna uzyskać ocenę A lub A+. Ocena A+ wymaga:

  • Obsługi TLS 1.2 i 1.3 z wyłączonym TLS 1.0 i 1.1.
  • Silnego zestawu szyfrów (bez RC4, bez 3DES).
  • Obecności nagłówka HSTS.
  • Włączonego zszywania OCSP.
  • Braku problemów z łańcuchem (certyfikaty pośrednie poprawnie zainstalowane).

Weryfikacja w przeglądarce

Kliknij ikonę kłódki na pasku adresu. W Chrome przejdź do Połączenie jest bezpieczne > Certyfikat jest ważny, aby potwierdzić, że wystawca, daty ważności i Subject Alternative Names (SANs) odpowiadają Twojej domenie.

Weryfikacja z wiersza poleceń

openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

Wyświetla to pełny łańcuch certyfikatów, wynegocjowany szyfr i wersję TLS. Szukaj Verify return code: 0 (ok), aby potwierdzić, że łańcuch jest zaufany.

Sprawdź datę wygaśnięcia certyfikatu

echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

W przypadku certyfikatów Let's Encrypt sprawdź również, czy próbne odnawianie działa:

sudo certbot renew --dry-run

Krok 7: Utwardzanie po instalacji i porządkowanie SEO

Zaktualizuj Google Search Console

Dodaj wersję HTTPS swojej witryny jako nową właściwość w Google Search Console. Google traktuje http:// i https:// jako oddzielne właściwości. Prześlij swoją mapę witryny HTTPS (https://yourdomain.com/sitemap.xml), aby przyspieszyć ponowne indeksowanie zaktualizowanych adresów URL.

Zaktualizuj mapę witryny i tagi kanoniczne

Upewnij się, że Twoja mapa witryny XML (generowana przez Yoast SEO, Rank Math lub podobne) zawiera wyłącznie adresy URL HTTPS. Sprawdź, czy tagi kanoniczne w sekcji <head> motywu odwołują się do HTTPS. Tag kanoniczny wskazujący na wersję HTTP strony będzie mylić roboty indeksujące, nawet jeśli przekierowanie 301 jest skonfigurowane.

Powiadom Google o zmianie

W Google Search Console użyj narzędzia Zmiana adresu tylko wtedy, gdy przeprowadziłeś migrację na zupełnie nową domenę. W przypadku migracji HTTP na HTTPS na tej samej domenie, przekierowania 301 obsługują transfer sygnału — narzędzie zmiany adresu nie jest potrzebne.

Uwagi dotyczące WordPress Multisite

W sieci WordPress Multisite musisz zaktualizować wartości siteurl i home w tabelach wp_siteurl i wp_blogs dla każdej podwitryny, nie tylko dla głównej witryny. WP-CLI obsługuje to dla każdej witryny osobno:

wp search-replace 'http://subdomain.yourdomain.com' 'https://subdomain.yourdomain.com' --url=subdomain.yourdomain.com --all-tables

Praktyczna macierz decyzyjna: którą metodę SSL wybrać

Twoje środowisko hostingoweZalecana metoda SSLOdnawianieNakład pracy
Hosting współdzielony z cPanelAutoSSL lub Let's Encrypt przez cPanelAutomatyczneMinimalny
[Hosting VPS](https://alexhost.com/pl/vps/) z Apache/NginxCertbot (Let's Encrypt)Automatyczne przez timer systemdNiski
VPS z cPanel/WHMAutoSSL w WHMAutomatyczneMinimalny
[Serwer Dedykowany](https://alexhost.com/pl/dedicated-servers/)Certbot lub płatny certyfikat CARęczne lub automatyczneŚredni
Domena proxowana przez CloudflareSSL Cloudflare + certyfikat źródłowyAutomatyczne (Cloudflare)Niski (ale zweryfikuj tryb Full Strict)
E-commerce / witryna wysokiego zaufaniaPłatny certyfikat OV lub EVRoczne ręczne odnawianieWysoki

Kluczowe wnioski techniczne

  • Instalacja certyfikatu i konfiguracja WordPress to oddzielne kroki. Certyfikat zainstalowany na poziomie serwera nie sprawia automatycznie, że WordPress generuje adresy URL HTTPS. Oba muszą być skonfigurowane.
  • Mieszana zawartość to najczęstszy błąd po migracji. Uruchom wyszukiwanie i zastępowanie w bazie danych za pomocą WP-CLI przed aktywacją jakiejkolwiek wtyczki SSL, aby wychwycić zakodowane na stałe adresy URL HTTP u źródła.
  • Automatyczne odnawianie Let's Encrypt musi być zweryfikowane, a nie zakładane. Uruchom certbot renew --dry-run po początkowej konfiguracji i monitoruj daty wygaśnięcia. Nieudane odnawianie po cichu niszczy witrynę 90 dni później.
  • HSTS to droga jednokierunkowa. Nie ustawiaj długiego max-age ani nie włączaj preload dopóki każda subdomena nie ma ważnego certyfikatu i nie jesteś trwale zobowiązany do HTTPS.
  • Darmowy SSL Cloudflare domyślnie nie jest szyfrowany end-to-end. Ustaw tryb SSL/TLS na Full (Strict) i zainstaluj certyfikat źródłowy na swoim serwerze, aby zamknąć lukę.
  • Na hostingu współdzielonym sprawdź, czy SSL Twojego dostawcy hostingu obejmuje zarówno domenę apex (yourdomain.com), jak i subdomenę www. Certyfikat wydany tylko dla jednej z nich spowoduje błąd niezgodności nazwy na drugiej.
  • Zserializowanych danych w bazach danych WordPress nie można bezpiecznie aktualizować za pomocą surowego SQL REPLACE(). Zawsze używaj WP-CLI lub wtyczki obsługującej serializację.

W przypadku witryn hostowanych na Hostingu Współdzielonym, najszybszą ścieżką do SSL jest włączenie AutoSSL lub Let's Encrypt przez cPanel — cały proces zajmuje mniej niż pięć minut i nie wymaga dostępu do wiersza poleceń. W przypadku bardziej złożonych wdrożeń wymagających niestandardowej konfiguracji szyfrów, zszywania OCSP lub certyfikatów wielodomenowych, VPS z konfigurowalnym panelem sterowania zapewnia niezbędny dostęp na poziomie serwera.

FAQ

Czy instalacja certyfikatu SSL bezpośrednio poprawia moje pozycje w Google?

Google potwierdziło HTTPS jako sygnał rankingowy w 2014 roku. Bezpośredni wzrost pozycji jest skromny, ale pośrednie korzyści — zmniejszony współczynnik odrzuceń spowodowany ostrzeżeniami bezpieczeństwa przeglądarki, kwalifikowalność do HTTP/2 i HTTP/3 oraz zaufanie użytkowników — mają mierzalny skumulowany wpływ na organiczne wyniki.

Jaka jest różnica między SSL a TLS?

SSL (Secure Sockets Layer) to przestarzały poprzednik TLS (Transport Layer Security). Wszystkie nowoczesne certyfikaty używają TLS 1.2 lub 1.3. Termin „certyfikat SSL” utrzymuje się jako branżowy skrót, ale żadna przeglądarka ani serwer nie używał rzeczywistego SSL od 2015 roku. Jeśli Twój serwer nadal akceptuje SSLv3 lub TLS 1.0, wyłącz je natychmiast — są podatne odpowiednio na ataki POODLE i BEAST.

Dlaczego moja witryna nadal wyświetla „Niezabezpieczone” po zainstalowaniu certyfikatu?

Najczęstszą przyczyną jest błąd mieszanej zawartości: co najmniej jeden zasób na stronie ładuje się przez HTTP. Otwórz narzędzia deweloperskie przeglądarki, sprawdź konsolę pod kątem ostrzeżeń o mieszanej zawartości i użyj WP-CLI search-replace lub wtyczki Really Simple SSL, aby przepisać problematyczne adresy URL. Drugorzędną przyczyną może być to, że adres URL witryny WordPress w Ustawienia > Ogólne nadal wskazuje na http://.

Jak odnowić certyfikat Let's Encrypt przed jego wygaśnięciem?

Certbot instaluje timer systemd lub zadanie cron, które automatycznie próbuje odnowienia, gdy certyfikat jest w ciągu 30 dni od wygaśnięcia. Aby wymusić natychmiastowe odnowienie, uruchom sudo certbot renew --force-renewal. Aby przetestować bez wprowadzania zmian, uruchom sudo certbot renew --dry-run. Sprawdź dziennik odnawiania pod adresem /var/log/letsencrypt/letsencrypt.log, jeśli odnowienie nie powiedzie się.

Czy mogę zainstalować SSL na WordPress bez dostępu do serwera lub cPanel?

Tak, przez Cloudflare. Dodaj swoją domenę do Cloudflare, skieruj serwery nazw na serwery Cloudflare i włącz ustawienie SSL/TLS. Połączenie między odwiedzającym a Cloudflare jest natychmiast szyfrowane. Jednak ustaw tryb na Full (Strict) i zainstaluj certyfikat Cloudflare Origin na swoim serwerze, aby zaszyfrować również połączenie między Cloudflare a serwerem źródłowym. Bez tego połączenie między Cloudflare a Twoim serwerem pozostaje niezaszyfrowane, co stanowi poważną lukę bezpieczeństwa w przypadku każdej witryny obsługującej dane użytkowników.

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij