Web Design Blog / Hosting:

Zmiana adresu z HTTP na HTTPS

Data publikacji: 2 kwietnia 2015

Ostatnia aktualizacja: 17 czerwca 2019

Po opublikowaniu wpisu dotyczącego wad i zalet certyfikatów SSL dostałem od wielu z was e-maile z pytaniem jak poprawnie, a przede wszystkim bezpiecznie z punktu widzenia pozycjonowania serwisu, dosłownie przenieść cały serwis na protokół HTTPS. Cieszę się, że wpis ten was zainspirował do migracji na SSL, i że zwracacie się z tym pytaniem do mnie.

Cieszę się także, że mogę Wam pomóc, co więcej, pokażę statystyki z „narzędzi dla webmasterów” jednej z większych stron, na których wykonywałem tego typu manewr. Można zauważyć, jak przejście na HTTPS wpłynęło na wyniki wyszukiwania w Google.

Instalacja certyfikatu SSL

Najpierw musimy zająć się samym certyfikatem SSL. Tutaj procedura będzie się różniła w zależności od dostawcy, z usług którego korzystamy. Poszczególne kroki będą jednak wyglądały w miarę podobnie. W czasie kiedy klient postanowił przejść na HTTPS za pomocą SSL klasy DV (ang. Domain Validation), dostawca hostingu, szczęśliwie dla jego kieszeni, oferował promocję, która polegała na obniżeniu kosztu pierwszego roku świadczenia SSL do kilkunastu złotych – grzech nie skorzystać – doradziłem. Polecam szukać tego typu promocji są one aktualnie bardzo popularne. Oczywiście sprawdźcie, ile kosztuje jego odnowienie w następnych latach.

Jak można wywnioskować z przytoczonej historii, SSL nie był oferowany w standardzie. Aby go uruchomić wystarczy zwyczajnie opłacić usługę dopiero po tym kroku możemy zabierać się za całą resztę. W ramach alternatywy można skorzystać z darmowego Let’s Encrypt, który został wdrożony już chyba przez wszystkich czołowych dostawców hostingu WWW. W przypadku serwera VPS i dedykowanych można samodzielnie zainstalować certyfikat – jest to kwestia kilku minut (ściągnięcia paczki i rejestracji domeny za pomocą kreatora).

Uruchomienie SSLa w ramach domeny polega na prostej weryfikacji, która od naszej strony wymagała jedynie założenia skrzynki e-mail (jeżeli jeszcze nie istnieje) z adresem admin@domena.pl. Na tę skrzynkę zostanie wysłana wiadomość z linkiem umożliwiającym uruchomienie certyfikatu SSL. Po instalacji w panelu klienta, w której w w przypadku wystąpienie problemów,  powinno pomóc nam wsparcie techniczne, certyfikat powinien już działać.

migracja SSL - http na https

Próbujemy wejść na naszą stronę, jednak tym razem z dumnym i zielonym przedrostkiem https:// przed jej adresem.

Przekierowania czas zacząć

Wszystko fajnie, tylko teraz musimy przekierować cały ruch na protokół https. Nie powinien nikogo zdziwić fakt, że do zrealizowania tego celu skorzystamy z pliku .htacces i funkcji rewrite. Ponieważ jakieś tam SEO dla witryny zostało wcześniej poczynione, .htaccess przepisywał adresy jak to niektórzy specjaliści mówią z „bez www” na „www”. Wyglądało to następująco:

RewriteEngine On

RewriteBase /
RewriteCond %{HTTP_HOST} !^www.nazwa-domeny.pl [NC]
RewriteRule ^(.*)$ //www.nazwa-domeny.pl%{REQUEST_URI} [R=301,L]

Tak zupełnie przy okazji, przepisywanie w ten sposób adresów – czyli na subdomenę www lub na samą domenę – to kluczowy ruch w optymalizacji SEO. Wiadomo, że w tym momencie nam to nie wystarczy, ponieważ chodzi nam o przekierowywanie następujące:

  • //domena na https://www.domena
  • //www.domena na https://www.domena
  • https://domena na https://www.domena
  • https://www – zostawiamy w spokoju

Jak sobie z tym poradzić? Dodajmy następujące linie:

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.nazwa-domeny.pl/$1 [R=301,L]

Jeżeli działa, a na pewno tak jest jeżeli potrafimy używać techniki kopiuj-wklej i podmienić ciąg „nazwa-domeny” na ten właściwy bez dodatkowych modyfikacji, przechodzimy do następnych kroków.

HTTP Strict Transport Security

To nie wszystko, aby wszystko było idealnie wykonane i uzyskać maksymalny wynik w SSL Server Test należy jeszcze włączyć tryb HTTP Strict Transport Security. To zablokuje możliwość wejścia no stronę po HTTP nawet jeśli użytkownik wyrazi na to taką chęć:

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

Ta instrukcja musi się znaleźć na samej górze.

Kompletny przykład przekierowania 301 na https://www w .htaccess

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.nazwa-domeny.pl [NC]
RewriteRule ^(.*)$ https://www.nazwa-domeny.pl%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.nazwa-domeny.pl/$1 [R=301,L]

Kompletny przykład przekierowania 301 na https:// (bez www) w .htaccess

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.nazwa-domeny.pl(.*) [NC]
RewriteRule ^(.*)$ https://nazwa-domeny.pl/$1 [R=301,L]

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Przekierowanie HTTP na HTTPS zgodnie z SEO

Aby to całe przejście na tryb SSL było naprawdę udane pod kątem doświadczeń użytkownika i optymalizacji dla wyszukiwarek, należy jeszcze sprawdzić czy nie pominęliśmy przypadkiem wymienionych niżej czynności. Są one niezbędne do tego aby zminimalizować ilość przepisywań adresów po stronie serwera i nie powodować jakichkolwiek problemów z indeksacją:

Linki do zewnętrznych wtyczek muszą także być poprzedzone protokołem https. Moja rada – linkujmy za pomocą wyrażenia //adres, czyli przykładowo <a href=”//inna-domena”>

Linkowanie wewnętrzne, jeżeli odbywa się za pomocą adresów bezpośrednich także musi zostać uaktualnione do postaci https://nazwa-domeny.pl/… lub //nazwa-domeny.pl/… Czytaj więcej o linkowaniu wewnętrznym.

Mapa strony (sitemap) też powinna być jak najszybciej uaktualniona do nowej postaci adresów.

Narzędzia dla webmasterów – tutaj łączymy konto z naszą stroną tak jakbyśmy zakładali całkiem osobny serwis, czyli weryfikacja, przesłanie mapy i cierpliwe czekanie na wprowadzenie zmian w indeksie. Uwaga, nie usuwamy starego indeksu.

Robots.txt – aktualizacja, jeżeli oczywiście zawiera jakieś instrukcje dla crawlerów.

Aktualizacja innych przekierowań 301 – jeżeli na waszej stronie są dokonywane przekierowania inne niż opisane wyżej unikajmy łańcuchu przekierowań.

Aktualizacja linków przychodzących to chyba najtrudniejsza i najbardziej czasochłonna rzecz. Wszelkie adresy w profilach społecznościowych, przeróżnych katalogach i wszędzie tam gdzie mamy taką możliwość, powinny zostać zaktualizowane do nowej postaci z przedrostkiem https://. Bez obaw, linki z http też będą miały znaczenie – używamy przecież przekierowania 301.

Uwaga: pod żadnym pozorem nie używajmy do naszego celu „narzędzia zmiany adresu”. Tak samo jak nie powinno się używać go do zmiany nazwy subdomeny ani ścieżki. Czytaj więcej w sekcji komentarzy.

Poprawna konfiguracja nagłówków – należy np. za pomocą .htaccess lub bezpośrednio w ustawieniach serwera Apache ustawić tryb HTTP Strict Transport Security

Aktualizacja adresu w back-endzie – w ustawieniach CMSa albo w plikach config należy zmienić http na https aby uniknąć ciągłego przekierowywania.

Przykład z ustawień ogólnych w WordPress:

aktualizacja przekierowania http na https

Przykład z preferencji ogólnych w PrestaShop:

włączenie SSL w ustawieniach

HSTS Preload – Dodaj swoją stronę do listy HSTS Preload. Jeżeli chcesz przekierować na HTTPS wszystkie sub-domeny zmień nagłówek na:

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

Dzięki „includeSubDomains” i „preload” spełnimy wymagania aby nasza domena była na stałe dopisana do wewnętrznej listy „Chrome’s HTTP Strict Transport Security (HSTS) preload list” co jeszcze bardziej zwiększy bezpieczeństwo i wiarygodność strony www. Potem wejdź na https://hstspreload.org/ i wpisz swoją domenę:

formularz dodawania domeny do hstspreload

Dzięki temu, najbliższe aktualizacje przeglądarek takich jak Chrome, Firefox, Safari i Microsoft Edge będą miały „na sztywno” zapisaną naszą domenę i będą od razu bez pytania przełączać się na protokół HTTPS. Na tej samej stronie możesz sprawdzić status zgłoszenia.

Dla pewności przetestuj: sprawdź czy wszystko zostało wykonane jak należy za pomocą takiego lub podobnego narzędzia online: SSL Server Test

Test certyfikatu SSL

Efekt końcowy

Potem pozostaje nam monitorować ruch. Jak wyglądała zmiana z punktu widzenia wyników wyszukiwania?

http

Wykres wyszukiwanych haseł witryny z HTTP. Zaznaczono moment rozpoczęcia przekierowywania 301 na adres z https.

https

Wykres wyszukiwanych haseł witryny z HTTPS. Zaznaczono moment rozpoczęcia przekierowywania 301 na adres z https. Zwróć uwagę, że drugi wykres ma inną skalę – widać wyraźnie pozytywny wpływ certyfiaktu SSL na ilość wyświetleń.

Jak widać, bez problemu poradziliśmy sobie z przekierowaniem całego ruchu na protokół HTTPS i zadbaniem o poprawną indeksację witryny z nowym adresem. Jak widzisz aktualizacja indeksu wyszukiwarki z nowym adresem zajęła parę dni. Co więcej, widać zwiększoną ilość wyświetleń w wynikach co może być częściowo powiązane z małym „wsparciem” algorytmu wyszukiwarki wobec idei rozpowszechniania szyfrowania SSL.

Chcesz wiedzieć więcej o SSL?

Przejdź do wpisu, w którym krótko wyjaśniam na czym polega bezpieczeństwo HTTPS i jak działa certyfikat SSL.

Podsumowanie

W ostatnim czasie można zaobserwować przechodzenie niektórych witryn na pełne SSL. Czy opłaca się taki ruch? W moim odczuciu: tak. Po instalacji certyfikatu zauważyliśmy z klientem wyraźny wzrost ilości wyświetleń strony w wynikach wyszukiwania, co miało także pozytywny efekt w postaci zwiększonej ilości konwersji. Pokazałem jak poprawnie wykonać przekierowanie oraz jakie dodatkowe czynności należy wykonać, aby całe przedsięwzięcie było bardziej efektywne.

Zmiana adresu z HTTP na HTTPS
4.7 (94.4%) głosów: 100


Komentarze

Dżyszla

2 sierpnia 2018

Nie rozumiem tylko dlaczego "Uwaga: pod żadnym pozorem nie używajmy do naszego celu „narzędzia zmiany adresu”." skoro Google mówi, żeby to zrobić...

Paweł Mansfeld

3 sierpnia 2018

Bardzo dobre pytanie!

Narzędzie zmiany adresu służy nam w sytuacji kiedy przeniesienie witryny wiąże się ze zmianą domeny lub subdomeny, np. z przejściem z http://subdomena.domena.pl na http://domena.pl wtedy należy używać narzędzia zmiany adresu.

Poniżej natomiast mamy wyraźny zapis: Uwaga: obecnie to narzędzie nie obsługuje następujących rodzajów przenoszenia witryny: zmiana nazwy subdomeny, zmiana protokołu (z HTTP na HTTPS) oraz zmiana ścieżki.

Link do oficjalnej strony pomocy Search Console: https://support.google.com/webmasters/answer/83106?hl=pl



Dodaj swój komentarz