Certyfikaty SSL i HTTPS nie są opcjonalne dla sklepów internetowych. Poza oczywistymi korzyściami bezpieczeństwa, Google używa HTTPS jako sygnału rankingowego od 2014 roku, przeglądarki wyświetlają ostrzeżenia „Niezabezpieczone" na stronach HTTP, a dostawcy płatności coraz częściej wymagają HTTPS do działania swoich integracji. Jeśli Twój sklep PrestaShop nadal działa na HTTP lub ma uszkodzoną konfigurację HTTPS, naprawa tego powinna być Twoim najwyższym priorytetem.
Ten poradnik przeprowadzi Cię przez cały proces: uzyskanie certyfikatu, konfigurację PrestaShop, naprawę typowych problemów i weryfikację, czy wszystko działa prawidłowo.
Zrozumienie certyfikatów SSL
Co faktycznie robi SSL/TLS
SSL (Secure Sockets Layer) i jego następca TLS (Transport Layer Security) szyfrują połączenie między przeglądarką klienta a Twoim serwerem WWW. Zapobiega to przechwytywaniu wrażliwych danych, takich jak hasła, numery kart kredytowych i dane osobowe podczas transmisji.
Gdy przeglądarka łączy się ze stroną HTTPS, weryfikuje certyfikat SSL serwera, ustanawia szyfrowane połączenie i wyświetla ikonę kłódki w pasku adresu. Ten proces trwa milisekundy i jest niewidoczny dla użytkownika poza wskaźnikiem kłódki.
Typy certyfikatów SSL
Istnieją trzy typy certyfikatów SSL, różniące się poziomem walidacji:
- Walidacja domeny (DV): Weryfikuje, że kontrolujesz domenę. Najtańszy i najszybszy do uzyskania (minuty). Let's Encrypt dostarcza je za darmo. Wystarczający dla większości sklepów PrestaShop.
- Walidacja organizacji (OV): Weryfikuje, że Twoja organizacja istnieje i kontroluje domenę. Kosztuje 50-200 EUR/rok. Pokazuje nazwę firmy w szczegółach certyfikatu, ale nie w pasku przeglądarki. Daje nieco więcej zaufania dla sklepów B2B.
- Rozszerzona walidacja (EV): Najbardziej dokładna weryfikacja, w tym kontrola podmiotu prawnego. Kosztuje 200-1000 EUR/rok. Wcześniej pokazywała zieloną nazwę firmy w pasku przeglądarki, ale większość przeglądarek usunęła to wizualne wyróżnienie. Korzyść bezpieczeństwa w porównaniu z DV jest minimalna dla większości sklepów.
Dla zdecydowanej większości sklepów PrestaShop darmowy certyfikat DV Let's Encrypt zapewnia identyczne bezpieczeństwo szyfrowania jak certyfikat EV za 500 EUR. Siła szyfrowania jest taka sama. Zaoszczędź pieniądze i zainwestuj je w swój sklep.
Krok 1: Uzyskaj certyfikat SSL
Opcja A: Let's Encrypt (Zalecane)
Let's Encrypt to darmowy, zautomatyzowany urząd certyfikacji wydający certyfikaty DV. Większość nowoczesnych dostawców hostingu integruje Let's Encrypt bezpośrednio w swoich panelach sterowania.
Na cPanel: Przejdź do SSL/TLS Status w dashboardzie cPanel. Kliknij „Run AutoSSL", aby automatycznie uzyskać i zainstalować certyfikaty dla wszystkich domen. AutoSSL cPanel obsługuje automatyczne odnawianie co 60-90 dni.
Na Plesk: Przejdź do Websites & Domains, wybierz swoją domenę, kliknij SSL/TLS Certificates i kliknij „Install" obok Let's Encrypt. Włącz automatyczne odnawianie.
Z linii poleceń (VPS/dedykowany): Zainstaluj Certbot, oficjalnego klienta Let's Encrypt. Dla Apache na Debian/Ubuntu: uruchom komendę certbot apache. Dla Nginx: użyj komendy certbot nginx. Certbot automatycznie konfiguruje serwer WWW i ustawia zadanie cron do odnawiania.
Opcja B: Zakupiony certyfikat
Jeśli potrzebujesz certyfikatu OV lub EV, kup go od renomowanego CA (Sectigo, DigiCert, GlobalSign). Proces obejmuje wygenerowanie Certificate Signing Request (CSR) na serwerze, przesłanie go do CA, ukończenie procesu walidacji i zainstalowanie wydanego certyfikatu.
Zespół wsparcia Twojego dostawcy hostingu zazwyczaj może pomóc w instalacji, jeśli nie czujesz się komfortowo z tym procesem.
Opcja C: Cloudflare (Darmowy SSL)
Darmowy plan Cloudflare zawiera SSL. Gdy kierujesz swoją domenę przez Cloudflare, zapewnia SSL między odwiedzającym a serwerami Cloudflare. Możesz wybrać tryb „Full (Strict)", który szyfruje również połączenie między Cloudflare a Twoim serwerem (wymaga certyfikatu na serwerze, nawet samopodpisanego).
To dobra opcja, jeśli już korzystasz z Cloudflare do CDN/ochrony DDoS. Pamiętaj, że w trybie „Flexible" połączenie między Cloudflare a Twoim serwerem nie jest szyfrowane, co nie jest naprawdę bezpieczne.
Krok 2: Włącz HTTPS w PrestaShop
Po zainstalowaniu certyfikatu SSL na serwerze musisz poinformować PrestaShop, aby go używał.
W PrestaShop 1.7.x i 8.x:
Przejdź do Parametry sklepu > Ogólne w back office. Ustaw „Włącz SSL" na Tak. Jeśli po zapisaniu nie pojawią się błędy, ustaw również „Włącz SSL na wszystkich stronach" na Tak.
Ważne: Najpierw włącz SSL, przetestuj, czy back office działa, a dopiero potem włącz go na wszystkich stronach. Jeśli włączysz oba naraz i coś będzie nie tak, możesz zablokować sobie dostęp do panelu administracyjnego.
Jeśli stracisz dostęp
Jeśli włączenie SSL zablokuje Ci dostęp do back office, możesz to naprawić bezpośrednio edytując bazę danych. Połącz się z bazą danych i ustaw wartość PS_SSL_ENABLED na 0 w tabeli ps_configuration. To wyłączy SSL, abyś mógł ponownie uzyskać dostęp do admina i zdebugować problem.
Zaktualizuj adresy URL sklepu
Przejdź do Parametry sklepu > Ruch i SEO > Adresy URL sklepu. Sprawdź, czy zarówno domena, jak i domena SSL są ustawione prawidłowo. Powinny być identyczne (np. obie „twojesklep.pl" bez prefiksu http:// czy https://). Nie dodawaj prefiksów protokołu w tych polach.
Krok 3: Skonfiguruj przekierowanie HTTP na HTTPS
Po włączeniu HTTPS musisz przekierować cały ruch HTTP na HTTPS. Służy to dwóm celom: zapewnia, że odwiedzający zawsze korzystają z szyfrowanego połączenia, i zapobiega problemom z duplikacją treści w wyszukiwarkach.
Przekierowanie .htaccess (Apache)
Dodaj następujące reguły do pliku .htaccess w głównym katalogu PrestaShop. Umieść je po „RewriteEngine On", ale przed istniejącymi regułami przepisywania PrestaShop:
Warunek RewriteCond sprawdza, czy HTTPS nie jest już włączony, a reguła RewriteRule przekierowuje na wersję HTTPS tego samego URL z kodem statusu 301 (trwałe przekierowanie).
Ważne: PrestaShop generuje własną zawartość .htaccess. Jeśli uruchomisz „Generuj plik .htaccess" z back office (Parametry sklepu > Ruch i SEO), Twoje niestandardowe dodatki zostaną nadpisane. Dodawaj reguły po regeneracji lub umieść je w osobnym pliku konfiguracyjnym.
Przekierowanie Nginx
Dla serwerów Nginx dodaj przekierowanie w konfiguracji bloku serwera. Utwórz osobny blok server, który nasłuchuje na porcie 80 i zwraca przekierowanie 301 na wersję HTTPS żądanego URI.
Przekierowanie Cloudflare
Jeśli korzystasz z Cloudflare, włącz „Always Use HTTPS" w ustawieniach SSL/TLS. To obsługuje przekierowanie na poziomie CDN, co jest bardziej efektywne niż przekierowania po stronie serwera.
Krok 4: Napraw mieszaną zawartość
Mieszana zawartość (mixed content) występuje, gdy strona HTTPS ładuje niektóre zasoby (obrazy, CSS, JavaScript) przez HTTP. Przeglądarki blokują lub ostrzegają o tych niezabezpieczonych zasobach, co może zepsuć układ strony, wyłączyć formularze płatności i wyświetlić ostrzeżenia bezpieczeństwa.
Znajdowanie mieszanej zawartości
Otwórz swój sklep w Chrome, naciśnij F12, aby otworzyć Narzędzia deweloperskie, i sprawdź zakładkę Console pod kątem ostrzeżeń o mieszanej zawartości. Wyglądają tak: „Mixed Content: The page at https://... was loaded over HTTPS, but requested an insecure resource http://...".
Alternatywnie, użyj narzędzia online jak WhyNoPadlock.com lub SSL Checker od JitBit, aby przeskanować strony pod kątem mieszanej zawartości.
Częste źródła mieszanej zawartości w PrestaShop
- Zakodowane na stałe adresy URL HTTP w treści CMS: Opisy produktów, opisy kategorii i strony CMS zawierające bezwzględne adresy URL z http://. Napraw przeszukując zawartość bazy danych pod kątem adresów URL http:// i zastępując je https:// lub protokołowo neutralnymi //.
- Zasoby modułów: Niektóre moduły ładują pliki CSS lub JavaScript używając adresów http://. Zaktualizuj kod modułu lub skontaktuj się z deweloperem.
- Zewnętrzne zasoby: Google Fonts, skrypty analityczne, osadzone wideo lub widgety mediów społecznościowych ładowane przez HTTP. Zaktualizuj kody osadzania, aby używały https://.
- Niestandardowe modyfikacje szablonu: Obrazy tła CSS lub pliki czcionek odwołujące się do http:// w arkuszach stylów szablonu.
- Stare szablony email: Szablony email zawierające obrazy z adresami http://. Zaktualizuj je w Design > Szablon email.
Czyszczenie bazy danych
Aby dokładnie naprawić problem, uruchom zapytania wyszukaj-i-zamień na bazie danych, konwertując pozostałe adresy URL HTTP. Celuj w pola opisów produktów, opisów kategorii, treści CMS i wpisy tabeli konfiguracji. Zawsze wykonaj kopię zapasową bazy danych przed uruchamianiem zapytań aktualizujących.
Krok 5: Zaktualizuj usługi zewnętrzne
Kilka usług zewnętrznych i konfiguracji wymaga aktualizacji po przejściu na HTTPS:
- Google Search Console: Dodaj swoją właściwość HTTPS (https://twojesklep.pl) jako nową właściwość. Google traktuje HTTP i HTTPS jako osobne witryny.
- Google Analytics: Zaktualizuj domyślny URL w Ustawieniach właściwości, aby używał https://.
- Google Merchant Center: Zaktualizuj URL witryny, jeśli używasz feedów Google Shopping.
- Mapa witryny: Wygeneruj ponownie mapę witryny, aby upewnić się, że wszystkie adresy URL używają https://. Jeśli korzystasz z modułu SEO, wygeneruj mapę witryny przez moduł. W mypresta.rocks nasz moduł mapy witryny obsługuje to automatycznie, gdy zmieniają się ustawienia SSL.
- Profile w mediach społecznościowych: Zaktualizuj adres URL witryny na Facebooku, Instagramie i innych platformach.
- Katalogi firm i linki zwrotne: Tam, gdzie to możliwe, zaktualizuj linki zewnętrzne, aby używały https://. Przekierowanie 301 obsługuje to pod kątem SEO, ale bezpośrednie linki HTTPS są zawsze lepsze.
Krok 6: Sprawdź, czy wszystko działa
Po zakończeniu konfiguracji przejdź przez tę listę weryfikacyjną:
- Odwiedź stronę główną przez HTTPS — kłódka powinna się pojawić bez ostrzeżeń
- Przejrzyj strony produktów, kategorii i CMS — sprawdź ostrzeżenia o mieszanej zawartości
- Dokonaj testowego zakupu — zweryfikuj, że cały przepływ płatności działa przez HTTPS
- Sprawdź back office — wszystkie strony administracyjne powinny ładować się przez HTTPS
- Sprawdź przekierowanie HTTP na HTTPS — odwiedzenie http://twojesklep.pl powinno przekierować na https://twojesklep.pl
- Przetestuj przekierowanie non-www na www (lub odwrotnie) — powinieneś mieć jeden kanoniczny format URL
- Sprawdź certyfikat SSL za pomocą SSL Labs Server Test (ssllabs.com/ssltest) — celuj w ocenę A lub A+
Częste błędy i jak je naprawić
Pętla przekierowań
Jeśli Twój sklep wchodzi w nieskończoną pętlę przekierowań po włączeniu SSL, najczęstszą przyczyną jest proxy lub load balancer, który kończy SSL przed dotarciem do Twojego serwera. PrestaShop widzi połączenie jako HTTP i przekierowuje na HTTPS, co proxy przekierowuje z powrotem, tworząc pętlę.
Rozwiązanie: Sprawdź, czy Twój hosting używa reverse proxy (typowe dla Cloudflare, AWS ELB lub paneli hostingowych). Może być konieczne ustawienie sprawdzania nagłówka X-Forwarded-Proto w .htaccess lub konfiguracji PrestaShop.
CSS i JavaScript się nie ładują
Jeśli Twój sklep wygląda na uszkodzony po włączeniu HTTPS (brak stylów, brak interaktywności), sprawdź blokowanie mieszanej zawartości. Przeglądarka prawdopodobnie blokuje zasoby HTTP. Sprawdź konsolę pod kątem błędów i napraw adresy URL.
Awarie bramek płatniczych
Niektóre bramki płatnicze mają skonfigurowane adresy URL webhooków, które nadal używają http://. Zaktualizuj adresy URL webhooków/powiadomień w dashboardzie dostawcy płatności, aby używały https://. Typowi winowajcy: URL IPN PayPal, endpoint webhooka Stripe, URL webhooka Mollie.
Obrazy się nie ładują
Jeśli obrazy produktów lub obrazy CMS znikają po migracji na HTTPS, prawdopodobnie zawierają zakodowane na stałe adresy URL http://. Uruchom czyszczenie bazy danych opisane w Kroku 4. Sprawdź również, czy Twój serwer obrazów lub CDN obsługuje HTTPS.
Kwestie wydajnościowe
HTTPS dodaje niewielki narzut z powodu uzgadniania TLS, ale na nowoczesnych serwerach jest to pomijalne (1-5 ms na nowe połączenie). Narzut jest dalej minimalizowany przez:
- HTTP/2: Dostępny tylko przez HTTPS i znacznie poprawia wydajność dzięki multipleksowaniu, kompresji nagłówków i server push. Większość nowoczesnych hostingów obsługuje HTTP/2 automatycznie przez HTTPS.
- Wznawianie sesji TLS: Powracający odwiedzający mogą wznowić swoją sesję TLS bez pełnego uzgadniania, redukując narzut prawie do zera.
- OCSP Stapling: Twój serwer może dołączyć sprawdzenie ważności certyfikatu do uzgadniania TLS, eliminując potrzebę kontaktowania się klienta z CA osobno.
W praktyce włączenie HTTPS zazwyczaj poprawia wydajność, ponieważ odblokowuje HTTP/2, co więcej niż kompensuje narzut TLS.
Utrzymanie konfiguracji SSL
SSL to nie konfiguracja typu „ustaw i zapomnij". Monitoruj te bieżące kwestie:
- Odnawianie certyfikatu: Certyfikaty Let's Encrypt wygasają co 90 dni. AutoSSL lub Certbot powinny obsługiwać odnawianie automatycznie, ale weryfikuj, czy to działa, okresowo sprawdzając datę wygaśnięcia certyfikatu.
- Nowa treść: Za każdym razem, gdy dodajesz nową treść CMS, opisy produktów lub osadzasz zewnętrzne zasoby, upewnij się, że używają adresów HTTPS.
- Aktualizacje modułów: Nowe moduły lub aktualizacje modułów mogą wprowadzić mieszaną zawartość. Testuj po każdej instalacji lub aktualizacji modułu.
- Nagłówki bezpieczeństwa: Rozważ dodanie nagłówków bezpieczeństwa jak HSTS (HTTP Strict Transport Security), aby instruować przeglądarki, by zawsze używały HTTPS. Zacznij z krótkim max-age i zwiększ go, gdy będziesz pewien, że wszystko działa.
Konfiguracja SSL/HTTPS to jedno z tych zadań, które wydaje się zniechęcające, ale jest naprawdę proste, gdy rozłoży się je na kroki. Korzyści bezpieczeństwa i SEO są natychmiastowe i znaczące. Jeśli Twój sklep PrestaShop nie jest jeszcze w pełni na HTTPS, uczyń to swoim projektem na ten tydzień. Twoi klienci, pozycje w Google i dostawcy płatności będą Ci wdzięczni.
Powiązane Artykuły
- Bezpieczenstwo PrestaShop: Kompletna lista kontrolna hartowania
- Zabezpieczanie sklepu PrestaShop: Praktyczny przewodnik dla właścicieli sklepów
- PrestaShop .htaccess: niezbedne reguly bezpieczenstwa i wydajnosci
Komentarze
Brak komentarzy. Bądź pierwszy!
Bądź pierwszy: zadaj pytanie albo podziel się przydatną opinią.
Dodaj komentarz
Dodaj pytanie, szczegół montażu albo opinię, która może pomóc innemu czytelnikowi.