Jak wdrożyć SSL (https) na platformie PrestaShop
Artykuły8 marca 2017
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:
- Uruchomienie certyfikatu SSL tylko na stronach koszyka, logowań itp - czyli wszędzie gdzie grozi nam powiadomienie w Chrome o niezabezpieczonym przesyłaniu danych.
- 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:
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:
Możesz szukać też ręcznie, tak jak na przykładzie poniżej:
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.