Skocz do treści

Już wkrótce odpalamy zapisy na drugą edycję next13masters.pl. Zapisz się na listę oczekujących!

HTTPS: Dlaczego Twoja kolejna strona powinna to mieć?

Niemal cała Twoja aktywność w Internecie odbywa się za pośrednictwem protokołu HTTP (Hypertext Transfer Protocol). Właściwie niezależnie co robisz, z czym albo skąd się łączysz – prawdopodobnie robisz to przez HTTP. Wraz z tym jak Twoja zależność od Internetu rośnie, jesteś narażona/y na coraz więcej różnego rodzaju zagrożeń. Każde nieszyfrowane połączenie HTTP upublicznia informacje o tym co robisz, jakie strony odwiedzasz oraz jakie akcje na nich wykonujesz. Dlatego tak ważne jest, abyś już dzisiaj zaczęła/zaczął używać HTTPS (SSL) – niezależnie, czy jesteś twórcą, czy konsumentem treści! Teraz to możliwe, zupełnie za darmo, dzięki Let's encrypt!

Zdjęcie Michał Miszczyszyn
JavaScript9 komentarzy

HTTPS

HTTPS (Hypertext Transfer Protocol Secure, albo HTTP over TLS) – czyli bezpieczne HTTP. Jest protokołem, w którym komunikacja następuje po HTTP, tylko że z dodatkiem szyfrowania. Technicznie rzecz biorąc, HTTPS to połączenie HTTP (protokołu przesyłania informacji) wraz z SSL lub, bardziej nowocześnie, TLS, służącego do szyfrowania danych.

Główną motywacją powstania HTTPS jest uwierzytelnianie odwiedzanych stron www, ochrona prywatności użytkowników, a także zapewnienie integralności przesyłanych danych. Jednak w kuluarach usłyszeć można wiele mitów na temat HTTPS. Dzisiaj obalam kilka z nich i prezentuję 9 faktów na temat HTTP(S)!

1. HTTP zagraża Twojej prywatności

Jeśli łączysz się z dowolną stroną przez HTTP to wszelkie przesyłane informacje mogą być z łatwością podejrzane. Przez kogo? Nieznane Ci osoby trzecie, w zależności co przeglądasz i skąd. Zaczynając od właściciela wifi z którym się łączysz, przez rozmaite serwery proxy po drodze, aż po dostawcę usług internetowych. Łączysz się z darmowym wifi w kawiarni albo na lotnisku i otwierasz strony przez HTTP? Absolutnie każdy dookoła Ciebie może podejrzeć dokładnie co robisz.

HTTPS szyfruje cały ruch, a więc niemożliwe jest jego odczytanie w locie w ten sposób.

2. HTTP nie można zweryfikować

Dodatkowym problemem jest fakt, że to co otwierasz przez HTTP nie może zostać zweryfikowane. Innymi słowy: Gdy otwierasz stronę swojego banku http://costambank.pl – nie masz pewności czy na pewno widzisz przez sobą bank, czy może ktoś inny, po drodze, podmienia stronę i tylko czeka aż wprowadzisz swoje dane logowania (atak man in the middle).

Gdy jednak korzystasz z HTTPS, możesz mieć zdecydowanie większą pewność, że strona banku naprawdę nią jest. W przeglądarkach zazwyczaj informuje o tym zielona kłódka obok adresu:

Certyfikat EV PayPal

Certyfikat DV Type of WebCzym się różnią od siebie te dwa zrzuty ekranu? O tym nieco dalej.

3. HTTP/2 jest znacznie szybsze od HTTP/1

Bardzo często powtarzanym mitem jest, że HTTPS jest wolniejsze od HTTP. Jest to bzdura. Faktem jest, że to HTTPS jest szybsze od HTTP. Spory skok technologiczny i przyśpieszenie można osiągnąć korzystając z protokołu HTTP/2, o ile Twój serwer go wspiera (a z mojego doświadczenia wynika, że coraz więcej usługodawców go ma!) Jest jednak pewien kruczek: Mimo, że specyfikacja tego nie zabrania, to jednak przeglądarki nie będą korzystały z HTTP/2 jeśli połączenie jest nieszyfrowane, a więc de facto niezbędne jest używanie SSL!

Jeśli chcesz sam/a sprawdzić o ile HTTP/2 przez HTTPS jest szybsze od zwykłego HTTP zerknij na tę stronę. Mój wynik poniżej: http://www.httpvshttps.com/

HTTPS jest nawet o 96% od HTTPJeśli przypadkiem jesteś devopsem i martwisz się tym, że szyfrowanie TLS obciąży Twój serwer to zajrzyj tutaj: https://istlsfastyet.com/

4. HTTPS pozwala na korzystanie z nowoczesnych technologii

Wiele nowych funkcji w przeglądarkach nie zadziała przez HTTP. Wymagane jest HTTPS. Chcesz korzystać np. z geolokalizacji, Service Worker, powiadomień Push albo Fullscreen (pełnego ekranu)? Tylko przez HTTPS.

5. HTTPS poprawia SEO

Już ponad 3 lata temu Google ogłosiło, że używanie bądź nieużywane HTTPS będzie miało wpływ na pojawianie się danej strony w wynikach wyszukiwania. Wiele firm zajmujących się profesjonalnie SEO twierdzi, że rzeczywiście HTTPS i SSL wpływa pozytywnie na ranking w wyszukiwarce Google.

Dodatkowo warto wiedzieć, że przy HTTP przeglądarki domyślnie nie ustawiają nagłówka Referer (tak, przez jedno r). Oznacza to, że jeśli nie używasz HTTPS to raczej nie dowiesz się skąd przychodzą do Ciebie Twoi użytkownicy!

6. HTTPS sprawia lepsze wrażenie dla użytkowników

Dodatkowo od niedawna przeglądarki zaczęły ostrzegać przed stronami, które zawierają formularze, ale nie używają HTTPS:

Niebezpieczna strona bez HTTPS

Wkrótce wszystkie strony używające HTTP mogą być oznaczone w ten sposób, a standardem stanie się korzystanie z HTTPS wszędzie. Taki jest szczytny cel :)

Ponadto, informacja o tym czy strona używa HTTPS czy nie znajduje się również w wynikach wyszukiwania w Google. Strona na górze nie korzysta z HTTPS, a strona na dole tak:

Wyniki wyszukiwania z HTTPS i bez HTTPS

7. HTTPS jest całkowicie darmowe

Od pewnego czasu certyfikat potrzebny do HTTPS można mieć całkowicie za darmo dzięki inicjatywie Let's Encrypt. Let's Encrypt jest urzędem certyfikacji (CA) dostępnym od 2016 roku. W ramach projektu możesz w łatwy i zautomatyzowany sposób otrzymać darmowe certyfikaty TLS do potrzebne do HTTPS! Otrzymujesz nie tylko sam certyfikat, ale również zestaw narzędzi, który sprawia, że wdrożenie takiego certyfikatu jest prostsze niż kiedykolwiek. Celem Let's Encrypt jest sprawienie, aby cały ruch w Internecie odbywał się w sposób zaszyfrowany.

Logo Let's Encrypt HTTPS SSL

Wiele hostingów natychmiast nawiązało współpracę i ułatwiło użytkownikom korzystanie z Let's Encrypt bez konieczności ręcznej instalacji czegokolwiek! Przykładowo, polski hosting MyDevil.net, z którego aktualnie korzystam, zintegrował Let's Encrypt ze swoim panelem administracyjnym i włączenie HTTPS dla całej strony to jedno kliknięcie!

Certyfikaty Let's Encrypt są wydawane na 90 dni. Warto poczytać dlaczego krótko = dobrze – w skrócie zmniejsza to konsekwencje ewentualnej kradzieży klucza prywatnego i wymusza automatyzację odnowień certyfikatów. Poleca się odnawianie certyfikatu od Let's Encrypt co 60 dni.

Pod koniec czerwca Let's Encrypt ogłosiło, że osiągnięty został kamień milowy: 100 milionów wydanych certyfikatów! Na początku przyszłego roku możliwe będzie również generowanie certyfikatów typu wildcard.

Sponsorami Let's Encrypt są giganci, m.in. Cisco, Mozilla, Google i Facebook.

Oczywiście niektóre firmy nadal sprzedają certyfikaty DV – i nie ma w tym nic złego. Jednak warto wiedzieć, że jest darmowa alternatywa, która niczym nie ustępuje, o ile tylko Twój hosting ją wspiera :) Jeśli nie widzisz informacji na ten temat to warto zapytać pomocy technicznej czy i kiedy obsługa Let's Encrypt się pojawi.

8. Rodzaje certyfikatów

Na pewno niejednokrotnie zauważyłaś/eś, że „kłódki” przy adresie strony mogą się między sobą różnić. Przykładowo inaczej wygląda na stronie banku, a inaczej u mnie na blogu, prawda?

Certyfikat DV
Certyfikat EV

Wyróżnia się 3 rodzaje certyfikatów:

  • Domain Validated (DV) SSL/TLS
  • Organization Validated (OV) SSL/TLS
  • Extended Validation (EV) SSL/TLS

Let's Encrypt wystawia tylko certyfikaty DV, które wyświetlają się w przeglądarkach jako zielona kłódka. Oznacza to, że połączenie jest szyfrowane, a osoba odpowiedzialna za domenę była w stanie w jakiś sposób potwierdzić, że nią zarządza.

Certfikaty OV i EV są płatne.

Certyfikat OV wymaga potwierdzenia (i zweryfikowania) danych osoby kupującej ten certyfikat. Dzięki temu informacje o właścicielu są wyświetlane w przeglądarce gdy podejrzy się szczegóły certyfikatu, ale nie w pasku adresu. Z tego co wiem, jest to najwyższy poziom certyfikatu, który może zakupić osoba fizyczna.

Certyfikat EV wymaga pełnej weryfikacji i potwierdzenia danych organizacji lub firmy, która dokonuje zakupu – trwa to kilkanaście dni. Koszt takiego certyfikatu to nawet 2000zł za rok! Jednak ogromną zaletą jest wyświetlanie nazwy firmy w pasku adresu w przeglądarce – jak ma to miejsce np. na stronach banków. Daje to poczucie bezpieczeństwa oraz pewność, że odwiedzamy stronę firmy, która została zweryfikowana przez CA.

Są też certyfikaty tzw. self-signed, które są darmowe, generuje się je samemu i zapewniają szyfrowanie ruchu po HTTPS. Jednak korzystanie z nich na stronie internetowej mija się z celem – przeglądarki wyświetlają wielkie czerwone ostrzeżenie, które na pewno odstraszy użytkowników. Takie certyfikaty znajdują zastosowania na localhost w czasie developmentu lub w wewnętrznym użyciu firm (np. w intranetach). Po uprzednim dodaniu klucza do bazy kluczy w systemie przez pracowników (lub administratorów) ostrzeżenie nie będzie się pojawiać.

Co mam zrobić?

Mam nadzieję, że udało mi się Ciebie przekonać, że HTTPS w dzisiejszych czasach jest koniecznością. Jego konfiguracja jest szybka, łatwa, przyjemna i od pewnego czasu darmowa.

Mówiąc krótko: Do zastosowań zwykłych użytkowników wystarczą darmowe certyfikaty DV od Let's Encrypt. Nic to nie kosztuje i jest zdecydowanie lepsze niż brak certyfikatu w ogóle. Bez wysiłku zyskujesz szyfrowanie ruchu, znaczne przyśpieszenie strony, zaufanie użytkowników i lepsze SEO.

Nie zwlekaj, sprawdź czy Twój hosting pozwala na używanie Let's Encrypt i koniecznie spraw sobie certyfikat. To nigdy nie było prostsze :)

👉  Znalazłeś/aś błąd?  👈Edytuj ten wpis na GitHubie!

Autor