Web Design Blog / Hosting:

Zmiana adresu z HTTP na HTTPS

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.

Na początku…

Najpierw musimy zająć się samym uruchomieniem usługi 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ę. Obecnie, oferty poważnych dostawców hostingu mają SSL w standardzie. 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 na https://www:

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 na https:// (bez www)

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 niczym szef

Aby to całe przejście na tryb SSL było naprawdę udane 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/…

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.

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.8 (95.11%) głosów: 90

Autor: (29 lat)

Służę pomocą w razie wykonania / odnowienia strony lub sklepu internetowego dla twojej firmy niezależnie od twojej lokalizacji czy skali przedsięwziecia.

Tego typu wpisy piszę w wolnych chwilach lub pomiędzy projektami. Tylko pomyśl co mogę dla Ciebie zrobić w ramach usługi :-)

Zadaj pytanie lub skomentuj

Wyrażam zgodę na przetwarzanie moich danych osobowych przez firmę Paweł Mansfeld z siedzibą w Jastrzębiu-Zdroju, ul. Plebiscytowa 10, w celu udzielenia odpowiedzi, w tym przedłożenia oferty jeśli o nią pytam. Moje dane osobowe będą przetwarzane do czasu cofnięcia zgody lub przez okres niezbędny do ustalenia, dochodzenia lub obrony roszczeń. Mam prawo dostępu do danych, sprostowania, usunięcia lub ograniczenia przetwarzania, prawo sprzeciwu, prawo wniesienia skargi do organu nadzorczego i prawo do przeniesienia danych.

Komentarze publiczne

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

Otrzymuj powiadomienie o nowych artykułach

Wyrażam zgodę na przetwarzanie moich danych osobowych przez firmę Paweł Mansfeld z siedzibą w Jastrzębiu-Zdroju, ul. Plebiscytowa 10, w celu udzielenia odpowiedzi, w tym przedłożenia oferty jeśli o nią pytam. Moje dane osobowe będą przetwarzane do czasu cofnięcia zgody lub przez okres niezbędny do ustalenia, dochodzenia lub obrony roszczeń. Mam prawo dostępu do danych, sprostowania, usunięcia lub ograniczenia przetwarzania, prawo sprzeciwu, prawo wniesienia skargi do organu nadzorczego i prawo do przeniesienia danych.

*Bez obaw, nie udostępniam nikomu twojego adresu e-mail