Wszystko na temat protokołu HTTPS oraz certyfikatu SSL
Posiadacze stron internetowych a jeszcze częściej platform sprzedażowych coraz częściej są zachęcani przez firmy, które dbają o ich marketing czy też wykonały nową stronę www na zainstalowanie protokołu HTTPS / Certyfikatu SSL na swojej domenie internetowej. Dowiadują się, że ma on wpływ na bezpieczeństwo witryny, działa pozytywnie na pozycjonowanie ale również wzbudza wiarygodność i zaufanie w oczach klienta.
Postaram się wytłumaczyć jasno, na prawdziwym przykładzie, tak aby nawet osoba niezwiązana z komputerami dowiedziała się o roli i sensie wdrożenia tego protokołu na własnej stronie.
Wyobraźmy sobie, że ktoś wejdzie na Twoją stronę internetową na której jest prosty formularz kontaktowy, np. taki jak tutaj: https://www.nowoczesnastrona.pl/kontakt/
Informacje, które wpiszemy w formularzu przechodzą przez serwer i trafiają do właściciela domeny jednak po drodze mogą one zostać wykradzione przez hakerów. Jeśli strona nie jest zabezpieczona certyfikatem SSL to haker dostanie jak na tacy, wszystkie informacje które wpisaliśmy w formularzu, natomiast jeśli strona jest zabezpieczone certyfikatem, to wtedy do hakera trafią informacje zaszyfrowane w postaci ciągu znaków, cyfr i liczb, które są dla niego kompletnie bezużyteczne, przykład widać na poniższym obrazku.
W mojej kilkunastoletniej przygody związanej z prowadzeniem firmy, zdarzyło się poprosić klienta poprzez formularz kontaktowy o podanie numeru konta bankowego w celu dokonania przelewu. Wiadomość ta nie była zaszyfrowana i została przechwycona przez hakera, który bardzo szybko odpisał mi podając swój numer konta. Ja niczego nieświadomy puściłem przelew gdzieś na konto azjatyckie na sporą ilość gotówki. Niestety pieniążków do dzisiaj nie udało się odzyskać.
Teraz wyobraźmy sobie np. sklep internetowy gdzie klienci płacą kartami kredytowymi, albo stronę banku gdzie przy logowaniu podajemy swoją nazwę użytkownika i hasło. Wszystkie te dane mogą zostać wykradzione, natomiast jeśli zabezpieczymy się protokołem HTTPS / Certyfikatem SSL nim informacja trafi na serwer, zostanie zaszyfrowana o czym pisałem wcześniej.
Historia protokołu HTTP/HTTPS
W 1990 r. doszło do powstania internetu w takiej postaci, jakim jest obecnie. Opiera się on na protokole umożliwiającym przesyłanie informacji HTTP. Niemniej jednak nie jest to bezpieczny sposób przesyłania, gdyż całość informacji zapisywana jest w formie zwykłego tekstu. Mówiąc prościej, każdy kto ma możliwość podejrzenia tychże danych, bez problemu je odczyta.
W 1994 r. wzbogacono protokół HTTP o szyfrowanie. Stworzono inny protokół, który miał być powiązany z HTTP i wzbogacać go o funkcje mające zwiększyć bezpieczeństwo przesyłu danych. Określa się go mianem SSL. Od tej chwili rozpoczęto używanie dwóch różnych nazw. Pierwszą spośród nich będzie protokół HTTP puszczany po SSL lub HTTP Secure (w skrócie HTTPS).
Coraz więcej stron internetowych przechodzi na nowy protokół. Uważa się, iż obecnie to już ponad 50% witryn, a liczba ta ciągle się zwiększa. Niedawno wprowadzono również kolejne zabezpieczenie, określane mianem TLS, niemniej jednak działa ono analogicznie do SSL.
W Październiku 2017 roku przeglądarka Chrome zaczęła ostrzegać użytkowników widocznym napisem w sytuacji gdy dana strona jest niezabezpieczona certyfikatem co widać na poniższym rysunku.
Jeśli certyfikat jest wdrożony nieprawidłowo również nie zauważymy kłódki przy naszym adresie www.
Co to jest Protokół HTTPS?
Na pewno każdy z nas widział chociażby raz oznaczenie https przy adresie witryny internetowej. Możemy go zobaczyć na ogół przy adresach stron, w przypadku których wymaga się zwiększonego zaufania do serwera. Według definicji HTTPS (ang. Hypertext Transfer Protocol Secure) to szyfrowana wersja protokołu HTTP. Komunikacja nie odbywa się w tym przypadku na zasadzie klient-serwer (spotykanej na przykład w serwerach poczty elektronicznej), zaś na zasadzie zaszyfrowanego certyfikatu SSL, dzięki któremu nie należy się obawiać o ewentualne przejęcie albo zmianę wysyłanych danych.
HTTPS poprzedza adresy portali powiązanych bezpośrednio z bankowością internetową, czyli banków, firm oferujących pożyczki, kantorów, jak również sklepów internetowych. Co istotne z tego protokołu korzysta także wyszukiwarka Google. Nierzadko na wykorzystanie tego protokołu decydują się również portale, które gromadzą dane dotyczące użytkowników – np. portale społecznościowe, fora dyskusyjne, czy tez portale z możliwością rejestracji użytkowników (a ten sposób dostają oni dostęp do możliwości ewentualnego komentowania treści). I to właśnie podczas rejestracji albo logowania widząc na stronie dodatkowy znak ,,s” zastanawiamy się, czym jest https?. Odpowiedź jest bardzo prosta. To po prostu wersja szyfrowana protokołu http.
Co oznacza protokół https dla przeciętnego internauty? Dzięki zastosowaniu tego protokołu, wysyłane dane są zaszyfrowane, a co za tym idzie trudniejsze do zmiany i przechwycenia.
Rodzaje certyfikatów SSL
Wspomniane wyżej certyfikaty są obecnie bardzo popularne. Niegdyś warunkiem ich pozyskania było posiadanie autoryzacji, która została wydana przez centrum certyfikacyjne. Z czasem jednakże rozpoczęły swoją działalność również centra wydające takie certyfikaty za darmo. Pierwszym tego typu centrum była publiczna organizacja Let’s Encrypt, która została utworzona przez Internet Security Research Group. Wspierają ją takie firmy jak Mozilla Foundation czy Akamai Technologies. Ponadto wydawaniem darmowych certyfikatów zajmują się również Comodo i WoSing.
Najbardziej popularną kategoryzacją certyfikatów SSL będzie ich podział ze względu na typ weryfikacji. Wyróżniamy zatem:
- Domain Validation (DV) – to podstawowy typ zabezpieczenia, który umożliwia ochronę danych podlegających transmisji w domenie certyfikowanej. Podczas wydawania tego certyfikatu weryfikacji poddaje się tylko zgłaszaną domenę,
- Organization Validation (OV) – to rozszerzona wersja uwierzytelniania. Tak samo jak typ podstawowy, model ten zapewnia zaszyfrowanie przesyłanych informacji w wybranej domenie. W czasie wydawania tego certyfikatu, weryfikacji podlega już nie tylko domena, ale również wnioskująca firma, która może zostać poproszona o przedstawienie umowy spółki, czy wyciągu z KRS-u,
- Extended Validation (EV) – ten typ certyfikatu określany jest także mianem pełnego uwierzytelnienia. Jego posiadanie stanowi jasny przekaz dla internautów, iż witryna posiada możliwie najsilniejszą weryfikację tożsamości. Podczas wydawania tego rodzaju certyfikatu, weryfikacji podlega witryna, jak i wnioskująca firma. Osobę, albo firmę ubiegającą się o certyfikat sprawdzą się między innymi pod kątem: statusu prawnego, faktycznej fizycznej obecności, zgodności z urzędowi danymi czy realnego prowadzenia swojej działalności.
Okazuje się, iż praktycznie jedyną różnicą pomiędzy płatnymi i bezpłatnymi certyfikatami SSL jest gwarancja. Jeśli dojdzie do złamania certyfikatu, organizacja, która go wydała będzie musiała wypłacić odpowiednie odszkodowanie. Jak to jednakże wygląda w praktyce?
Gwarancja w wypadku płatnych certyfikatów SSL
Zanim podejmie się decyzję odnośnie zakupu certyfikatu, warto będzie dokładnie zapoznać się z treścią gwarancji. Zwykle dane na taki temat znaleźć można w regulaminie albo w przypisanym do niego załączniku. Teoretycznie płatny certyfikat SSL ma dać gwarancję, która w razie czego pokryje rezultaty wycieku danych. W praktyce jednak musiałby zostać złamany szyfr certyfikatu, co jest prawie że niemożliwe, a nawet gdyby uzyskanie odszkodowania może być niezwykle trudne. W praktyce w takim przypadku trzeba będzie przygotować się na walkę na drodze sądowej.
Czy jest sens instalować certyfikat SSL na prostej stronie bez żadnych formularzy?
Wykupienie, jak i zainstalowanie certyfikatu SSL może przynieść praktycznie same korzyści każdemu, kto jest właścicielem jakiejkolwiek witryny internetowej. O nieocenionych zaletach tego typu rozwiązania wspomnieliśmy już w powyższym artykule. Niemniej jednak należy mieć na uwadze, iż skorzystanie z tego certyfikatu nie zawsze będzie konieczne. Jeżeli posiadana strona ma wyłącznie informacyjny charakter i nie ma na niej formularzy i w żaden sposób nie są wymagane wrażliwe dane osobowe, certyfikat SSL stanie się zbędnym narzędziem. Niemniej jednak należy mieć na uwadze, iż nawet wypełnienie zwykłego formularza kontaktowego, w którym wymagane będzie podanie imienia, nazwiska i np. numeru telefonu, spowoduje już konieczność zaszyfrowania tego rodzaju danych. Certyfikat SSL będzie również istotny dla osób, które chcą zadbać o wizerunek w Internecie – pomaga on w uzyskaniu statusu bezpiecznej strony, a zatem wzmacnia jej pozytywny odbiór.
Istnieje również wiele rodzajów witryn, gdzie zastosowanie protokołu HTTPS będzie absolutną koniecznością. Są to strony, które zajmują się między innymi przetwarzaniem wrażliwych danych osobowych, adresów albo informacji, które dotyczą kont bankowych i płatności. Jak można się łatwo domyślić, będą to strony banków, czy też przychodnie posiadające możliwość rejestracji pacjentów online.
Czy certyfikat SSL wpływa pozytywnie na pozycjonowanie witryny internetowej?
Czynników, które mają wpływ na pozycje naszej strony jest bardzo dużo. Niektóre z nich mają większą wagę jak np. unikalne tematyczne treści na stronie, znaczniki H1, H2, inne mniejszą a jeszcze inne są właściwie niezauważalne dla wyników wyszukiwań.
Certyfikat SSL należy do tej ostatniej grupy, czyli osoba która po instalacji certyfikatu myśli, że wyniki pójdą znacząco do góry jest w będzie. Niestety na dzień dzisiejszy a mamy marzec 2020 roku waga posiadania certyfikatu SSL jest właściwie żadna. Warto jednak wiedzieć, że pracownicy Google informują o rosnącej roli tego protokołu co może świadczyć iż w przyszłości jego rola może być znacząco większa dlatego myśląc o pozycjonowaniu swojej witryny warto zadbać o ten protokół nawet w darmowej wersji.
Po instalacji certyfikatu zadajmy jednak o prawidłowe przekierowania 301. Nasza witryna optymalnie powinna wyświetlać się tylko i wyłącznie pod jednym adresem a wszystkie pozostałe powinny przekierowywać na adres docelowy. Czyli jeśli naszym adresem docelowym jest:
https://www.nowoczesnastrona.pl/
to wszystkie pozostałe adresy, czyli:
https://nowoczesnastrona.pl/
https://nowoczesnastrona.pl/
https://www.nowoczesnastrona.pl/
powinny przekierowywać na adres docelowy: https://www.nowoczesnastrona.pl/
Optymalizacja strony i problemy wynikające podczas instalacji certyfikatu SSL
- Mixed content – część zasobów strony jest pobierana przez protokół HTTP a część poprzez protokół HTTPS. W tej sytuacji przeglądarka Chrome nie wyświetli nam zielonej kłódki przy naszej stronie.
- Jak sprawdzić, które elementy są źle ładowane, czyli po protokole http: Listę tych linków znajdziemy w konsoli przeglądarki Chrome (klawisz F12 > console). Są to elementy z tagiem mixed content.
- Jak naprawić źle ładowane elementy strony: Należy w kodzie strony lub bazie danych poprawić ręcznie ścieżki do błędnie ładowanych elementów. W przypadku stron opartych na systemie WordPress najprawdopodobniej wystarczy instalacja i aktywacja darmowej wtyczki: Really Simple SSL.
- Brak prawidłowych przekierowań 301 – W większości wypadków wystarczy wkleić poniższy kod w pliku .htaccess
#Przekierowanie na https
RewriteEngine On
#RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTPS} !^on$
RewriteRule ^(.*)$ https://nazwanaszejstrony.pl/$1 [R=301,L]
#Przekierowanie na adres bez www
RewriteCond %{HTTP_HOST} ^www.nazwanaszejstrony.pl$ [NC]
RewriteRule ^(.*)$ http://nazwanaszejstrony.pl/$1 [R=301,L]
Pamiętaj, przekierowania powinny zostać wykonane dla wszystkich podstron, także każda stara podstrona powinna przekierowywać na nową podstronę z HTTPS
- Search Console. W narzędziu w tym należy wgrać domenę z protokołem HTTPS i tą domenę ustawić jako główną
- Mapa strony. Należy utworzyć nową mapę strony z HTTPS oraz wgrać ją w Search Console. Starą mapę należy usunąć.
- Adres kanoniczny. Pamiętajmy iż po wgraniu certyfikatu należy ustawić nowe adresy kanoniczne z protokołem “HTTPS”
- Linkowanie wewnętrzne – zadbajmy by wszystkie linki w obrębie serwisu jak i adresy prowadzące do obrazów zawierały nowy protokół HTTPS. Nawet jeśli mamy odpowiednie przekierowania to warto te elementy poprawić ręcznie.
- Plik robots.txt – jeśli w pliku mamy adres do mapy strony – tutaj również nanieśmy odpowiednią zmianę.
- Aktualizacja linków przychodzących. Wszystkie linki które przychodzą do naszego serwisu ciągle działają, jednak pierw trafiają na protokół HTTP dopiero później trafiają na przekierowanie 301 by trafić do naszej nowej domeny z protokołem HTTPS. Niestety przekierowanie 301 nie przenosi całej mocy, dlatego warto tam gdzie tylko to możliwe zmodyfikować linki przychodzące by posiadały protokół HTTPS. Poprawmy te linki tam gdzie to tylko możliwe, również w narzędziu Googla moja firma, Google Analytics i inne.
- Odnawianie certyfikatu SSL. Darmowe certyfikaty często musimy odświeżać ręcznie, po upływie roku czasu od momentu istalacji. Jeśli nie odnowimy certyfikatu nasza strona przestanie prawidłowo funkcjonować.
Podsumowanie
Certyfikat SSL w przypadku wielu sytuacji takich jak fora, strony banków, sklepy internetowe jest wręcz wymagany, warto dodać że kampanie ADS odrzucają sklepy internetowe, które nie mają wgranego protokołu. W przypadku stron na których używany jest formularz kontaktowy również sugeruje się używanie protokołu HTTPS. Informacje wrażliwe dla klienta są coraz częściej wykradane przez hakerów, dlatego warto się zabezpieczyć i w tych sytuacjach. Certyfikat SSL zwiększa zaufanie w oczach klienta, którzy są coraz bardziej świadomi niebezpieczeństwa jakim niewątpliwie jest Internet.
Wgranie certyfikatu to jednak nie wszystko, musimy zadbać o prawidłową późniejszą optymalizację wielu elementów, które zostały wymienione w naszym artykule. Pominięcie tych elementów może przynieść efekt odwrotny od zamierzonego.