Jak poprawnie przenieść stronę z HTTP na HTTPS bez strat: konfiguracja Yandex Webmaster i Google Search Console

Wprowadzenie

Nie można powiedzieć, że temat dzisiejszego artykułu jest nowy, raczej wręcz przeciwnie. Na przykład, kupiłem i zainstalowałem mój pierwszy certyfikat SSL już 10 lat temu i nawet wtedy nie byłem pionierem. Głównym celem było bezpieczeństwo użytkowników i ich danych. Wtedy też napisałem obszerny wpis na temat certyfikatu SSL dla strony internetowej z komentarzami przedstawiciela centrum certyfikacji, ponieważ nie było to tak proste jak teraz.

Jeśli cofnąć się do przeszłości, Google od dawna zaleca przenoszenie wszystkich stron na https: najpierw tylko rozmowy i wiele komunikatów prasowych, w których mówiono, że https będzie miało wpływ na pozycjonowanie, następnie w przeglądarce Chrome pojawiła się notatka „Połączenie z witryną nie jest bezpieczne”. Według najnowszych danych od samego Google’a, 50% wszystkich stron internetowych przeszło już na protokół https, a obecność stron https w top 10 wynosi 89%.

Nawet patrząc na statystyki Let’s Encrypt, liczba certyfikatów wzrosła 2-krotnie: z 200 do 400 mln:

Let's Encrypt

Wniosek jest prosty

Wygląda na to, że obecność https stała się już wymogiem koniecznym, aby być w czołówce. Ale tak nie jest. Przyczyny wcale nie leżą w pozycjonowaniu czy jakichkolwiek bonusach w wyszukiwarce. Chodzi znów o bezpieczeństwo, na przykład nie będziesz mógł zintegrować na stronie płatności online, jeśli jesteś na http. A tego potrzebuje bardzo wiele, a właściwie wszystkie komercyjne witryny, sklepy internetowe.

Jeśli chodzi o samo pozycjonowanie, to w ostatnich latach pracowaliśmy z wieloma stronami klientów, zarówno na http, jak i https. Wiele stron przenieśliśmy na https i nie zauważyliśmy absolutnie żadnych zmian w pozycjonowaniu! W ogóle żadnych, zarówno w Yandex, jak i w Google.

Na blogu Yandex ukazał się wpis o tym, że Yandex wykonał ogromną pracę, aby uprościć webmasterom przejście na protokół HTTPS, a także prosi użytkowników o porady, co jeszcze można by poprawić.

Po tym Yandex zaczął wyświetlać błędy związane z niepoprawną konfiguracją certyfikatów SSL na stronie.

Równolegle z tymi wiadomościami w panelu Yandex.Webmaster zaczęły przychodzić powiadomienia o niewystarczająco bezpiecznym protokole HTTP.

Wniosek jest prosty – dalsze odkładanie przejścia na HTTPS już nie wchodzi w grę. Pomimo że obecnie wpływ certyfikatu SSL na pozycjonowanie jest zasadniczo zerowy, wyszukiwarki w najbliższym czasie mogą zacząć przywiązywać do tego czynnika coraz większą wagę.

Dlatego postanowiliśmy zapoznać Was z naszą wewnętrzną instrukcją jak przenieść stronę z HTTP na HTTPS, która pozwala na migrację z minimalnymi stratami ruchu i pozycji w Yandexie i Google.

Wybieramy i instalujemy certyfikat SSL

Nie będę szczegółowo opisywać rodzajów certyfikatów SSL, powiem tylko, że z punktu widzenia bezpieczeństwa wszystkie certyfikaty mają taką samą siłę szyfrowania i używają algorytmu skrótu SHA256.

Certyfikaty bywają:

  • Zwyczajne (Domain Validation, DV) – w certyfikacie podana jest tylko domena,
  • Z weryfikacją firmy (Organization Validation, OV) – podana jest domena i nazwa firmy,
  • Z rozszerzoną weryfikacją (Extended Validation, EV) – zielony pasek adresu w przeglądarce, nazwa firmy w nim, w certyfikacie również domena i nazwa firmy.

Nawet samopodpisane certyfikaty SSL mają podobny poziom ochrony, ale nie należy ich używać, ponieważ każda przeglądarka będzie wyświetlać komunikat o niezweryfikowanym certyfikacie i nie pozwoli wejść na stronę. Ale jeśli będziesz postępować według naszej instrukcji, nie napotkasz tego problemu.

Jeśli dla Ciebie nie ma znaczenia, na kogo zostanie wydany certyfikat – czyli nie przeszkadza Ci, że będzie wydany na osobę fizyczną – wystarczy DV, a najprawdopodobniej będzie to darmowy Let’s Encrypt. Certyfikaty EV nie są wydawane osobom fizycznym. Zakup certyfikatów OV przez osobę fizyczną jest możliwy, ale proces walidacji jest o wiele bardziej skomplikowany niż w przypadku osób prawnych.

Oto jak wygląda certyfikat SSL z rozszerzoną weryfikacją:

SSL i z weryfikacją organizacji

Tak wygląda zwykły certyfikat SSL:

Tak wygląda zwykły certyfikat SSL

Myślę, że 99% czytelników tego wpisu zadowoli najprostszy typ certyfikatu DV.

Kilka kolejnych szczegółów, które pomogą Ci wybrać certyfikat SSL

  • Jeśli masz małą stronę usługową, niewielki sklep internetowy, serwis informacyjny, śmiało użyj darmowego certyfikatu od Lets Encrypt.
  • Jeśli masz wiele subdomen, użyj certyfikatu Wildcard SSL. Pozwoli on zabezpieczyć nie tylko główną domenę, ale wszystkie jej subdomeny. Darmowy certyfikat Wildcard od Let’s Encrypt też jest dostępny (możliwość pojawiła się na początku 2018 roku).
  • Jeśli twój projekt rozgałęzia się nie na subdomeny, a na wiele oddzielnych domen-lustrzanek, będziesz potrzebować certyfikatu SAN (Subject Alternative Names).

Gdzie wziąć darmowy certyfikat SSL od Let’s Encrypt?

Zazwyczaj teraz wszystkie popularne hostingi umożliwiają z góry zainstalowanie dla Twojej domeny tego certyfikatu SSL.

Możesz podłączyć certyfikat SSL jednym kliknięciem bezpośrednio na stronie zarządzania domeną.

Jeśli nie znalazłeś takiej funkcji u swojego hostingu, śmiało zapytaj o nią w pomocy technicznej. Jestem praktycznie pewien, że taka możliwość istnieje.

Jeśli też używasz dedykowanego serwera z panelem ISPmanager, możesz łatwo zainstalować certyfikat ssl na swojej domenie.

Jeśli nie wiesz jak to zrobić, możesz skorzystać z oficjalnego poradnika: Integracja ISPmanager z Let’s Encrypt.

Jeśli nie masz żadnego panelu, możesz zainstalować Let’s Encrypt na swój serwer z oficjalnego repozytorium, w zależności od Twojego systemu operacyjnego.

Na przykład:

Instalujemy Certbot na Ubuntu

Zainstaluj snapd:
sudo apt install snapd
Upewnij się, że masz zainstalowaną najnowszą wersję snapd: 
sudo snap install core
sudo snap refresh core
Zainstaluj Certbot za pomocą snapd:
sudo snap install --classic certbot
Utwórz dowiązanie symboliczne, aby upewnić się, że Certbot uruchamia się:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Wybierz najlepszą opcję dla swoich potrzeb.
Utwórz certyfikaty SSL dla wszystkich domen i skonfiguruj przekierowania w serwerze WWW:
sudo certbot --apache
sudo certbot --nginx
Utwórz certyfikaty SSL dla określonej domeny (zalecane, jeśli używasz nazwy hosta systemu):
sudo certbot --apache -d example.com -d www.example.com
Tylko zainstaluj certyfikaty SSL:
sudo certbot certonly --apache
sudo certbot certonly --nginx
Upewnij się, że proces odnawiania działa:
sudo certbot renew --dry-run
Instalujemy Certbot na Centos, AlmaLinux
Snapd nie jest dostępny w domyślnym repozytorium, więc musimy dodać repozytorium EPEL za pomocą następującego polecenia:
dnf install -y epel-release
Teraz możesz zainstalować pakiet "snapd":
dnf install -y snapd
Następnie włącz jednostkę "systemd", która zarządza głównym gniazdem komunikacyjnym snap:
systemctl start snapd.socket
systemctl enable snapd.socket
Teraz włącz klasyczne wsparcie dla snap:
ln -s /var/lib/snapd/snap /snap
Użyj snap, aby zainstalować certbot:
snap install --classic certbot
Gdy uruchomisz certbot, skonfiguruje on nginx dla ruchu HTTPS, powie nginx, aby używał nowo wygenerowanego certyfikatu dla tego ruchu i skonfiguruje automatyczne odnawianie Twojego certyfikatu.
/snap/bin/certbot --nginxLub Apache
sudo certbot --apache

Oprócz tego, że certyfikat Let’s Encrypt jest darmowy, ma szereg zalet w porównaniu do płatnych: nie wymaga rekonfiguracji serwera WWW, użycia poczty elektronicznej (koniecznie na domenie, dla której kupowany jest certyfikat), ręcznej obsługi wygasłych certyfikatów itp. Na hostingach współdzielonych (i serwerach dedykowanych z panelami zarządzania), oferujących instalację certyfikatu Let’s Encrypt, jest zainstalowany klient używany do żądania certyfikatu, przeprowadzania walidacji domeny, instalacji certyfikatu i konfiguracji szyfrowania HTTPS.

Let’s Encrypt pewne ograniczenia

Certyfikaty Let’s Encrypt mają pewne ograniczenia, z którymi prawdopodobnie się nie spotkasz, ale oto one:

  • Centrum certyfikacji Let’s Encrypt wydaje tylko proste certyfikaty DV (z walidacją tylko domeny). Nie są wydawane bezpieczniejsze certyfikaty OV i EV (i nie są planowane). Oznacza to, że podczas wystawiania certyfikatu nie jest weryfikowana legalność działalności prowadzonej na stronie. Zresztą, przy wydawaniu płatnych certyfikatów OV legalność i uczciwość biznesu (czyli osoby prawnej) też nie jest sprawdzana. Tylko przy wydawaniu certyfikatów EV są sprawdzane dokumenty rejestracyjne, dokumentacja podatkowa, telefon, własność domeny i rodzaj działalności firmy.
  • Certyfikat Let’s Encrypt jest wydawany na 3 miesiące (90 dni).
  • Można zamówić tylko 50 certyfikatów w tygodniu na jedną domenę najwyższego poziomu i jej subdomeny (np. certyfikat na domain.pl+www.domain.pl to dwa certyfikaty z pięćdziesięciu);
  • Jeśli masz wiele subdomen, wszystkie subdomeny możesz podać w jednym certyfikacie, ale nie więcej niż 100 subdomen w jednym certyfikacie.
  • Nie więcej niż 5 powielających się certyfikatów w tygodniu. Oznacza to, że nie można zażądać danych już wydanego certyfikatu dla tej samej domeny więcej niż 5 razy w tygodniu.
  • Let’s Encrypt nie zapewnia gwarancji ani nie wypłaca odszkodowania w przypadku wycieku danych, ponieważ jest organizacją non-profit. Jak rozumiesz, to właśnie jest cena za darmowość.
  • Inne ograniczenia związane z liczbą rejestracji z jednego adresu IP (500 w 3 godziny), ograniczenie liczby błędów w procesie wystawiania certyfikatu itp. nie wymieniłem. Nie będziesz tego potrzebować.

Jedyną istotną kwestią z tej listy może wydawać się drugi punkt o 3 miesiącach. Oznacza to, że będziesz musiał odnawiać lub ponownie instalować certyfikat. Ale wszystkie hostingle i panele zarządzania, które oferują instalację darmowego certyfikatu Let’s Encrypt, obsługują automatyczne odnawianie i przedłużanie certyfikatu, więc nie będziesz musiał o nic dbać.

Jak sprawdzić poprawność zainstalowanego certyfikatu SSL

Zwróć uwagę, że dopóki nie zakończymy wszystkich kroków instrukcji, strona musi być dostępna przez protokół http i https.

Wkrótce nadejdzie czas na sklejenie i przekierowanie!

Jeśli prace nad instalacją certyfikatu SSL zostały zakończone, należy sprawdzić jego poprawność. Można to zrobić za pomocą wielu darmowych serwisów. Oto ten, którego my używamy:

https://hotmnt.pl/free-tools/co-to-jest-certyfikat-ssl-i-dlaczego-jest-potrzebny

Po prostu wpisz adres swojej strony z podaniem protokołu HTTPS we właściwe pole i poczekaj na wynik. Powinien on być następujący:

Sprawdź certyfikat SSL

Konfiguracja przenosin na HTTPS dla Yandex Webmaster i Google Search Console

Oto szczegółowa instrukcja, której używamy w naszej pracy:

Dodajemy lustrzane odzwierciedlenie https w Yandex Webmaster i Google Search Console.
Dodajemy jako oddzielną nową witrynę z potwierdzeniem prawa własności.
Szczegółowa instrukcja dodawania witryn w panelach webmasterów znajduje się w pomocy wyszukiwarek: Yandex, Google.
Dla Google dodajemy plik Disavow dla kanonicznej wersji witryny, jeśli został wcześniej utworzony (jeśli linki dla wersji http witryny lub na starej domenie zostały wyłączone dla Google).
Potrzebny plik jest dostępny pod adresem: https://search.google.com/search-console/disavow-links

Generujemy mapę witryny z protokołem https.
Tutaj Twoje działania mogą się różnić w zależności od systemu zarządzania treścią. Poniżej krótka instrukcja dla jednego z najpopularniejszych komercyjnych systemów CMS – 1C-Bitrix.
Przechodzimy do sekcji Marketing – Konfiguracja sitemap.xml – Wybieramy istniejącą mapę http i klikamy „Edytuj”. Zmieniamy protokół na listy rozwijanej i klikamy Zapisz i uruchom.

W pliku robots.txt podajemy mapę witryny z wersją https. Przykład składni:

Sitemap: https://logicznakuznia.eu/sitemap.xml

  • Konfigurujemy przekierowania 301 ze stron http do stron z https. Konfigurujemy również przekierowania 301 ze wszystkich lustrzanek witryny. Oznacza to z https://www, http://, http://www na główne lustro z https://. Postaraj się, aby wszystkie przekierowania odbywały się przez jedno przekierowanie 301 (czyli w jednym kroku).
  • Jeśli witryna brała udział w programie „Towary i ceny” Yandex, to obowiązkowo należy podłączyć ten program również dla wersji https witryny.
  • Skanujemy witrynę w poszukiwaniu pozostałych bezwzględnych adresów url z wersją http. Zastępujemy je względnymi, czyli usuwamy protokół z podaniem domeny ze wszystkich linków.
  • Informujemy o przeprowadzce w panelu Yandex Webmaster, zaznaczając opcję „Dodaj HTTPS” na karcie „Przeprowadzka witryny”. I nie zapomnij kliknąć Zapisz.
  • Informujemy o przeprowadzce w panelu Google Search Console w podobny sposób.
  • W ciągu kilku minut, w przypadku pomyślnego wykonania wszystkich poprzednich czynności, zobaczysz komunikat, że wniosek został przyjęty i zamiast wersji http w wynikach wyszukiwania pojawi się wersja https:
  • Dla wersji https witryny określamy region w Yandex Webmaster i Yandex.Spravochnik
  • Dla wersji https witryny wskazujemy aktualną mapę witryny z protokołem https w Yandex Webmaster

Podobnie w Google Search Console: Wskazujemy sitemap.xml na https w Google Search Console

Czekamy na sklejenie lustrzanek. Gdy nastąpi, powinno przyjść powiadomienie o zmianie głównego lustra, a także w Yandex Webmaster witryny powinny być wyświetlane jako lustra.
W Google nic takiego nie zobaczysz. Obie wersje witryny będą nadal wyświetlane jako dwie osobne witryny:
Ale w raporcie „Pokrycie” strony zostaną wykluczone z wyszukiwania z typem błędu „Strona z przekierowaniem”. Obserwuj proces łączenia lustrzanek. Sprawdzaj, że strony http znikają z wyszukiwania Yandex i Google. Stopniowo znikną całkowicie.

Zalecamy nie usuwać wersji http projektów z paneli webmasterów, ponieważ pozwala to szybko zobaczyć błędy, które mogą wystąpić w przyszłości, jeśli na przykład przekierowania przestaną działać.

Podczas przeprowadzki obserwuj zachowanie ruchu i pozycji. Możliwe są krótkotrwałe załamania w obu przypadkach.

Oto przykład jednej przeprowadzki.

Tak zachowywał się ruch po skonfigurowaniu przekierowań:

Tak zachowywał się ruch po skonfigurowaniu przekierowań

Zaraz po przeprowadzce widać zauważalny skok pozycji. Chętnie bym to powiązał z przejściem na https, ale to była po prostu praca nad optymalizacją docelowych stron.

Wykonanie czynności z tej instrukcji pozwoli Ci przeprowadzić migrację na protokół https z minimalnymi konsekwencjami dla projektu.

Podsumowanie

Na sam koniec chciałbym uzupełnić naszą instrukcję pomocnymi linkami do instrukcji Yandexa i Google:

Google: Zabezpiecz swoją witrynę za pomocą HTTPS
Google: Przenoszenie witryny ze zmianą adresu URL

To na pewno wszystko, przyjaciele.

Dziękuję za uwagę i życzę udanych przeprowadzek!