PrestaShop to jedno z ciekawszych rozwiązań pozwalających na wygodne uruchomienie swojego własnego sklepu internetowego. W artykule przedstawię, jak wdrożyć certyfikat SSL na tej platformie, zadbać o przekierowania i rozwiązać problem z wczytywaniem niezabezpieczonych zasobów. Jak się z resztą okazuje jest to stosunkowo proste :).

Za przykład posłuży nam sklep z papeterią ślubną Zapi.pl, który znajduje się na hostingu Linuxpl.com (reflink). Co należy zrobić i jak się za to zabrać? O tym niżej.

1. Wykup protokół SSL i dodatkowy adres IP w panelu hostingu

Do uruchomienia protokołu SSL, czyli szyfrowania danych i adresów URL z https będziesz potrzebować oczywiście certyfikatu SSL, który musisz wykupić w panelu swojego hostingu. W przypadku Linuxpl konieczne jest również wykupienie dodatkowego adresu IP, który obsłuży Twój certyfikat, elementy te kupisz w panelu swojego konta.

Bazując na tym konkretnym przykładzie, nasze wydatki na sklep wzrosną o roczny koszt SSL i IP, a konkretniej o:

  • Certyfikat SSL - Rapid SSL - 92,25 zł brutto.
  • Dodatkowy adres IP - 147,60 zł brutto.

Czyli łącznie o 239,85 zł brutto.
Ceny mogą różnić się w zależności od platformy hostingowej, z której korzystasz.

2. Skonfiguruj SSL na swoim serwerze WWW

Oprócz samego wykupienia dodatkowych usług, konieczne jest ich odpowiednie skonfigurowanie na serwerze www, dla Twojego sklepu internetowego. W tym wypadku konieczne jest obsłużenie nowego adresu IP, a więc również modyfikacja rekordów DNS Twojej domeny. 

Konfiguracja będzie z pewnością różnić się w zależności od hostingu, dlatego polecam abyś zlecił to doświadczonemu administratorowi. W przypadku Linuxpl konfiguracja jest w cenie certyfikatu - ze względu na zmiany w DNS polecam jednak zlecić ich przeprowadzanie w nocnych godzinach.

3. Włącz SSL dla Twojego sklepu internetowego

Po poprawnym wdrożeniu SSL przez administratora i odświeżeniu DNSów (do 24 godzin) - możesz rozpocząć dalsze prace związane z SSL - czyli uruchomieniu SSL i wykonanie przekierowań 301 w obrębie Twojego sklepu.

Przed tymi działaniami sprawdź koniecznie czy w sklepie nie masz błędów 404. Polecam sprawdzić przynajmniej pojedyncze URL'e z poszczególnych widoków, czyli URL: strony głównej, kategorii, karty produktu, wpisu na blogu, statycznej strony. Jeśli wszystko jest ok, nadszedł czas na ostatnie szlify i uruchomienie SSL w Twoim sklepie internetowym.

Platforma na której działamy daje nam 2 opcje uruchomienia certyfikatu SSL:

  1. Uruchomienie certyfikatu SSL tylko na stronach koszyka, logowań itp - czyli wszędzie gdzie grozi nam powiadomienie w Chrome o niezabezpieczonym przesyłaniu danych.
  2. Uruchomienie certyfikatu SSL w obrębie całego sklepu.

Jest to dość wygodne rozwiązanie dla osób, które nie decydują się na wdrożenie SSL'a w obrębie całego serwisu ze względu na obawy przed utratą ruchu organicznego. Ja sam zdecydowałem się na uruchomienie go od razu w całym sklepie, aby w przyszłości mieć to już z głowy.

Jak uruchomić HTTPS w domenie?

PrestaShop wychodzi tutaj z pomocną dłonią i pozwala na uruchomienie SSL'a oraz wykonanie automatycznych przekierowań 301 poprzez kilka kliknięć. Jest to niezwykle wygodne i proste.

Wystarczy zalogować się do panelu administratora swojego sklepu, przejść do menu bocznego i rozwinąć zakładkę Preferencje. Następnie należy wybrać ustawienia główne, kliknąć "Sprawdź czy sklep obsługuje SSL" i finalnie zaznaczyć "TAK" lub 2 razy "TAK" w przypadku chęci uruchomienia HTTPs w obrębie całego sklepu:

ssl shoper

W tym momencie Twój sklep zacznie działać pod adresami URL obejmującymi https:// w adresie. Utworzone zostaną również automatyczne przekierowania 301 ze starych wersji adresów URL na ich nowe wersje uwzględniające w nich https://.

Pamiętaj, że jeśli w przeszłości Tworzyłeś ręcznie jakiekolwiek przekierowania 301 - konieczna będzie ich ręczna modyfikacja.

Jeśli wszystko jest ok, to w Tym momencie możesz cieszyć się poprawnym wdrożeniem certyfikatu SSL w Swoim sklepie internetowym. Pamiętaj jednak, że uwzględnienie przez Google przekierowań 301 i podmiana adresów URL w wynikach wyszukiwania może potrwać nawet kilka tygodni.

Najczęstsze problemy z SSL: przekreślona kłódka i próba wczytania niezabezpieczonych skryptów

Warunkiem poprawnego wdrożenia SSL jak i protokołu HTTPS (wraz z piękną zieloną kłódką informującą użytkowników o bezpieczeństwie przesyłania danych) jest nie tylko konieczność wykupienia SSL, IP i wykonanie przekierowań. Jest to również zadbanie o to, aby w kodzie źródłowym serwisu wszelkie skrypty, pliki CSS itp. zasoby ładowane były z wykorzystaniem protokołu HTTPS. W przeciwnym wypadku nasza strona może dostać takie oto oznaczenia:

Jak z tym walczyć w praktyce?

Należy przejrzeć kod źródłowy swojej witryny i wyszukać w jej sekcji head oraz jej kodzie wszystkie odesłania do zasobów, które ładowane są poprzez podanie całych ścieżek adresów URL, zawierających HTTP zamiast HTTPS.

Z pewnością przyda Ci się darmowy program crawlujący XENU (download), który przeskanuje Twój serwis i dostarczy Ci wszystkie adresy URL, które są w nim dostępne. Prawym klikiem sprawdzisz w XEnu na jakiej stronie występuje dany adres URL:

xenu

Możesz szukać też ręcznie, tak jak na przykładzie poniżej:

brak https

Następnie wystarczy zamienić wszystkie odnośniki http na https: http://fonts.google... na https://fonts.google... a certyfikat zacznie działać poprawnie. Pamiętaj o sprawdzaniu statusu zmian w trybie incognito. W przypadku tego konkretnego sklepu dodatkowo wykonaliśmy modyfikacje linków wewnętrznych, które gdzieniegdzie wstawione były na sztywno i kierowały na adresy podstron z http:// zamiast https://. 

Aby usprawnić przeindeksowanie serwisu możesz wykorzystać opcję "Pobierz i zrenderuj" w Search Console.

Wdrożenie https w obrębie serwisu zostało przez Google oficjalnie potwierdzone jako czynnik rankingowy, który pozytywnie wpływa na widoczność serwisu w wynikach wyszukiwania. Niestety wykonanie tak dużej ilości przekierowań 301 w obrębie serwisu może wiązać się z tymczasową utratą ruchu z naturalnych wyników wyszukiwania - co zostało niejednokrotnie potwierdzone przez SEOwców.