HTTPS

Posiadanie certyfikatu SSL umożliwia zabezpieczenie danych przesyłanych w witrynie poprzez ich szyfrowanie. W przypadku stron internetowych wykorzystywanie certyfikatu SSL widoczne jest po tym, że dana domena działa z wykorzystaniem protokołu HTTPS. Jest więc możliwa do odwiedzenia w adresie URL z https, na przykład takiego: https://www.lukaszsuchy.pl.

Jak wiemy, posiadanie certyfikatu SSL i protokołu HTTPS jest jednym z wielu czynników rankingowych, który wpływa pozytywnie na postrzeganie domeny przez algorytmy Google oraz użytkowników.

Google sugeruje, aby certyfikat SSL wdrażać tylko na podstronach, na których przesyłane są dane użytkowników, czyli na przykład podstron z formularzami. Z uwagi na to, że certyfikat wykupuje się dla całej domeny, wygodniej, lepiej i bezpieczniej wdrożyć jest go zbiorczo, dla całej domeny aniżeli tylko wybranych podstron.

Proces wdrażania SSL i HTTPS w swojej domenie

Aby poprawnie wdrożyć certyfikat SSL i protokół HTTPS w ramach swojej domeny, niezbędne jest wykonanie następujących kroków:

1. Zakup certyfikatu SSL w panelu hostingu

W tym wypadku wystarczy wykupić certyfikat SSL w panelu swojego hostingu / panelu klienta. W większości przypadków zakup certyfikatu następuje dla konkretnej domeny. Czasami zakupiony certyfikat należy po zakupie i opłaceniu dodatkowo przypisać do konkretnej domeny ręcznie po jego opłaceniu.

Z punktu widzenia SEO, nie ma tutaj żadnej różnicy w kwestii tego z jakiego certyfikatu SSL skorzystasz. Może to być zarówno najdroższy certyfikat jak i najtańszy czy darmowy certyfikat Let’s Encrypt.

W większości przypadków, wykorzystywana jest więc ta darmowa opcja (Let’s Encrypt) lub najtańsza. Średni koszt najtańszego certyfikatu na jeden rok to od 20 do 100 złotych.

Należy pamiętać, że w certyfikat co roku trzeba odnawiać i najczęściej co roku opłacać (zakupić na nowo). Niektóre z hostingów oferują zakup certyfikatu na dłuższy okres czasu – np. 5 lat. Nie zwalnia to nas niestety z obowiązku jego odnowy co roku, o czym mowa w kolejnym punkcie.

2. Wygenerowanie i zainstalowanie certyfikatu SSL na hostingu oraz przypisanie go do konkretnej domeny

Po opłaceniu certyfikatu SSL, konieczne jest jego wygenerowanie (kluczy i poświadczeń) oraz ewentualne przypisanie do konkretnej domeny – jeśli nie zostało to zrobione w poprzednim kroku. Generowanie certyfikatu na hostingu trwa zwyczajowo od godziny do kilku.

W większości przypadków wygenerowanie i spięcie certyfikatu możliwe jest bezpośrednio z panelu hostingu poprzez wygodny formularz. Ważne jest to, aby pamiętać o tym, by certyfikat SSL co roku odnowić (zakupić i na nowo spiąć z domeną). Aczkolwiek i tutaj, część hostingów jak np. Dhosting.pl (tutaj link z 45% rabatu przy finalizacji zamówienia na pierwszy rok) oferuje funkcjonalność automatycznego odnawiania certyfikatu SSL i to darmowego, bo Let’s Encrypt :). Tak więc w takim wypadku pozostaje tylko jego jednorazowe zainstalowanie z panelu hostingu.

3. Sprawdzenie poprawności zainstalowania SSL (wyświetlenie strony z https:// lub https://www.)

Po tym jak już uporasz się z zakupem, instalacją i “parowaniem” SSL z domeną, następuje ważna chwila. Twoja domena powinna być możliwa do odwiedzenia w wersji z https lub https://www.

4. Wykonanie odpowiednich przekierowań 301 z różnych wersji domeny do jednej wersji dla strony głównej i wszystkich podstron serwisu.

Przekierowania 301 do jednej właściwej wersji adresu to kluczowy moment dla SEO. W ramach przypomnienia, domyślnie każda domena internetowa dostępna jest pod 2 różnymi adresami URL:

  • http://lukaszsuchy.pl
  • http://www.lukaszsuchy.pl

Po wdrożeniu HTTPS, liczba ta zwiększa się o dwa dodatkowe z https, mamy więc:

  • http://lukaszsuchy.pl
  • http://www.lukaszsuchy.pl
  • https://lukaszsuchy.pl
  • https://www.lukaszsuchy.pl

Naszym głównym zadaniem, jest więc zadbanie o to, aby ze wszystkich tych wersji nastąpiło automatyczne przekierowanie 301 do jednej właściwej.

Przekierowania tego typu wykonamy np. w pliku .htaccess dla serwów korzystających z Apache.

Jeśli korzystasz z systemów CMS jak WordPress, to zapewne jeszcze przed wdrożeniem certyfikatu SSL, posiadałeś jedną domyślną wersję domeny, na którą następowało automatyczne przekierowanie 301.

Jeśli nie wiesz, która wersja adresów URL z www czy bez www powinna być tą docelową, warto posłużyć się tutaj np. narzędziem Majestic (zakłada Pages), gdzie zobaczysz, które wersje twojej witryny posiadają największą ilość linków zewnętrznych:

Tutaj jak widzimy (pomijając 1 wynik, ponieważ tam mamy już https) jest to wersja z www. Jeśli masz jeszcze jakieś wątpliwości, możesz sprawdzić site swojej domeny, jak poniżej i zobaczyć co obecnie znajduje się w indeksie:

W tym konkretnym przypadku, docelową i końcową wersją adresu URL będzie adres w formie https://www.

Tak więc wszystkie pozostałe warianty powinny przekierowywać właśnie do tej formy.

*Jeśli widzisz w indeksie adresy w różnych wersjach, wybierz ten z największą ilością linków czy ruchu z Google :).

Ilość przekierowań

Jest jeszcze jedna rzecz, na którą warto zwrócić uwagę – jest to ilość przekierowań 301 do finalnej wersji adresu URL. Docelowo chcemy, aby serwer wykonał przekierowania 301 w formie jedne do jeden do adresu docelowego, czyli tak:

Powinniśmy unikać sytuacji, w których z jakiegoś powodu następuje podwójne przekierowanie 301, np. najpierw z http:// do http://www, a dopiero następnie do https://www. Dokładnie jak widać to na zrzucie poniżej z narzędzia https://httpstatus.io, gdzie sprawdzicie status odpowiedzi poszczególnych adresów URL:

Podwójnych przekierowań należy unikać profilaktycznie. Wiemy, że przekierowania 301 potrafią wytrącić część mocy SEO. Dlatego podwójne przekierowanie jest tutaj zbędne, tym bardziej, że możliwe jest wykonanie tego w sposób omawiany – jednostopniowy :).

Jak wykonać poprawne przekierowania 301 do wersji domeny z HTTPS?

Realizacja przekierowań 301 w przypadku systemów CMS wykonywane jest najczęściej przy użyciu wtyczek. Przykładowo dla WordPress ja sam używam wtyczki Really Simple SSL. Wtyczka zapewnia niezbędne przekierowania, a dodatkowo pomaga np. z podmianą zasobów ładowanych przez http:// zamiast https.

Nie mniej jednak, nawet w przypadku wtyczki możliwe, że po sprawdzeniu statusów adresów URL nastąpi podwójne przekierowanie :). W takim wypadku nie obejdzie się bez modyfikacji pliku .htaccess.

Zakładając, że posiadamy problem jak w przypadku mojej domeny, można go bardzo wygodnie rozwiązać.

Na samej górze pliku .htaccess wystarczy dodać następujący kod:

Powyższy kod umieszczony na samej górze pliku zapewni nam odpowiednie przekierowanie z wersji http:// bezpośrednio do wersji https://www.

Aby zapewnić sobie pełnoprawne przekierowanie całej domeny, do kodu tego należy dodać poniżej kolejną część, która zapewni nam przekierowania 301 dla dwóch pozostałych wersji (http://www oraz https:// do https://www.):

W tym momencie cała domena, wraz z jej podstronami przekierowana zostanie w formie jeden do jednak do wybranej wersji (to jest https://www.), co widać w narzędziu https://httpstatus.io:

Jak zapewne zauważyliście, w regule przekierowań pliku .htaccess znalazła się dodatkowa dyrektywa:

Header always set Content-Security-Policy "upgrade-insecure-requests;"

Jest dodatkowe polecenie, które za zadanie ma poinformowanie przeglądarki, że domyślnie powinna ona wykorzystywać na tej stronie HTTPS zamiast HTTTP. Dodatkowo w miarę możliwości przeglądarka ma sama podmieniać adresy URL zasobów ładowanych przez HTTP na HTTPS://.

Ewentualny, nieco prostszy kod:

5. Podmiana zasobów wewnętrznych, które ładowane są z wykorzystaniem ścieżek bezwzględnych w wersji z HTTP.

Ostatnim krokiem w kontekście wdrożenia SSL i HTTPS w swoim serwisie jest podmiana wszystkich zasobów, które ładowane są z wykorzystanie adresów bezwzględnych, ale po protokole HTTP lub HTTP://WWW.

Najczęściej są to zdjęcia i grafiki, a czasami pliki CSS i JS (te, które korzystają oczywiście z adresów bezwzględnych). Gdy używasz ścieżek względnych, raczej nie będziesz miał tutaj nic do roboty :).

Większości przypadków, dodatkowa reguła z punktu 4 załatwi problem. Pomimo tego, warto jednak dodatkowo sprawdzić swój serwis pod tym kątem.

Aby wyłapać takie rzeczy, konieczne jest skorzystanie z konsoli przeglądarki, gdzie w przypadku wyświetlania danego adresu URL i ładowania zasobu poprzez http:// zamiast https:// konsola zwróci Ci informację o tzw. “Mixed content”. W naszym przypadku (stron głównej) błędów takich nie ma:

Oczywiście przejrzenie każdej podstrony będzie trudne i czasochłonne, dlatego świetnie sprawdza się tutaj np. Sitebulb czy dane z Search Console, które ten proces pomogą zautomatyzować i usprawnić.

W systemie WordPress proces podmiany na sztywno zakodowanych adresów URL zautomatyzować można z wykorzystaniem wtyczki https://wordpress.org/plugins/velvet-blues-update-urls/, która automatycznie podmieni wszystkie adresy URL w bazie :).

W przypadku innych skryptów, najprostszym rozwiązaniem będzie skorzystanie z bazy danych i komend SQL lub po prostu ręczna podmiana adresów URL.

THANK YOU!
If you have any questions in the meantime, please contact help@majestic.com
You have successfully registered for a Majestic Demo. A Customer Advisor will contact you shortly to schedule a suitable time to connect.