Czasy, kiedy za podstawowy certyfikat SSL (Domain Validated) dla swojej domeny webmasterzy musieli płacić przynajmniej kilkadziesiąt dolarów, a bezpłatne wersje certyfikatów nie były rozpoznawane przez przeglądarki – minęły już bezpowrotnie. Sytuacja zmieniła się diametralnie za sprawą organizacji pożytku publicznego – Internet Security Research Group i jej usługi Let’s Encrypt, która od grudnia 2015 roku zaczęła wydawać bezpłatne certyfikaty Domain Validated. Jesteś właścicielem bloga, serwisu informacyjnego, strony www? Sprawdź, jak skorzystać z bezpłatnego certyfikatu i daj pewność internautom, że twoja wirtualna przestrzeń jest dla nich bezpieczna.
Let’s Encrypt cieszy się ogromną popularnością: od uruchomienia projektu w 2015 roku do końca czerwca 2017 roku wystawionych zostało ponad 100 milionów certyfikatów. Biorąc pod uwagę średnią liczbę, podawaną przez Let’s Encrypt na swojej stronie, czyli około 600 tysięcy wystawianych dziennie nowych certyfikatów, można śmiało założyć, że do chwili obecnej wystawiono ich od 140 do 160 milionów. Dla przypomnienia warto dodać, że liczba istniejących domen wg Netcraft, to obecnie około 1,8 miliarda (stan na koniec listopada 2017 roku). Źródło
Dzienna liczba certyfikatów wystawianych przez Let’s Encrypt:
Darmowy certyfikat Let’s Encrypt jest potrzebny przede wszystkim właścicielom stron osobistych, blogów i serwisów informacyjnych. Certyfikaty wydawane przez Let’s Encrypt to certyfikaty typu Domain Validation (DV) – posiadacz domeny musi udowodnić, że posiada do niej prawo. W przeciwieństwie do płatnych rozwiązań, Let’s Encrypt oferuje wyłącznie certyfikaty DV. Osoby zainteresowane uzyskaniem certyfikatu związanego z prowadzeniem biznesu, niestety, będą musiały pozostać przy certyfikatach typu Organization Validation lub Extended Validation, które są wydawane komercyjnie. W przypadku certyfikatów OV i EV, proces wydawania certyfikatu nie jest w pełni automatyczny i wiąże się najczęściej z koniecznością dostarczenia do firmy dokumentów uwierzytelniających dane.
Dlaczego twoja strona powinna mieć certyfikat SSL?
W przypadku stron internetowych certyfikat SSL zabezpiecza poprzez zaszyfrowanie połączenia komputera klienta z drugim komputerem, służącym jako serwer. Dzięki temu, informacje wymieniane pomiędzy dwoma komputerami są zabezpieczone przed odczytem przez osoby niepowołane. W kontekście sprawy Edwarda Snowdena i stawianych przez niego tez, w tym np. poglądu, że rządy podsłuchują swoich obywateli w każdy dostępny sposób, kwestia poufności przesyłanych danych zaczęła mieć obecnie bardzo duże znaczenie.
Czy HTTPS wpływa na pozycję strony w rankingu?
HTTPS jest jednym z czynników wpływającym na pozycję strony w rankingu, chociaż jego wpływ, wg przedstawicieli Google, może być minimalny. Innymi słowy – po wprowadzeniu certyfikatu nie należy się spodziewać nagłego wzrostu pozycji strony w SERPach.
Kolejny aspekt posiadania certyfikatu może mieć szybkie i wymierne skutki. Od wersji 56., przeglądarka Chrome w pasku adresu wyświetla ostrzeżenie o niebezpiecznej stronie, jeśli na stronie znajduje się formularz logowania albo system płatności (np. kartą płatniczą). Użytkownik wchodzący na stronę internetową i widzący w pasku adresu oznaczenie „niezabezpieczona”, raczej nie pozostanie na niej zbyt długo.
Nie wygląda zbyt zachęcająco, prawda?
Ale to dopiero początek. Na swoim blogu Google podało informację, że w kolejnych wersjach przeglądarki planuje rozszerzać ostrzeżenia związane ze stronami nieposiadającymi SSL, a w pewnym momencie może zacząć je oznaczać jako niebezpieczne, co wygląda bardzo źle:
Jak zatem niewielkim kosztem pracy i bez przeznaczania dużych funduszy, wdrożyć szyfrowanie na swojej stronie? Tu przychodzi z pomocą Internet Security Research Group oraz usługa – Let’s Encrypt.
Let’s Encrypt – co dostanę za darmo?
W przypadku Let’s Encrypt można otrzymać bezpłatny certyfikat DV, ważny przez trzy miesiące kalendarzowe od dnia wygenerowania. Za pomocą skryptów można zautomatyzować proces odnawiania certyfikatów dla domeny tak, by całość mogła odbywać się bez naszej ingerencji co kwartał. Internet Security Research Group w chwili obecnej nie udostępnia jeszcze certyfikatów wildcart (pozwalających chronić subdomeny w domenie, np. blog.mojadomena.pl). Wydawanie certyfikatów typu wildcard przez Let’s Encrypt rozpoczęło się w marcu 2018 roku – warto śledzić wpis zawierający planowane zmiany.
Instalacja certyfikatu Let’s Encrypt dla strony jest prosta
Jeżeli posiadasz wykupiony hosting w firmie świadczącej tego typu usługi, w większości przypadków, uruchomienie podstawowego certyfikatu DV dla swojej strony nie powinno zająć dużo czasu. W chwili obecnej certyfikaty nie wymagają już posiadania przeznaczonego adresu IP, jednak niektóre, bardzo stare z punktu widzenia upływu czasu, przeglądarki mogą mieć z tym problem. Spokojnie, dotyczy to naprawdę starych przeglądarek (np. wbudowanych w Android 1.x i 2.x, Internet Explorer działający na Windows XP). Użytkownicy pozostałych przeglądarek nie powinni mieć problemów w trakcie wizyty na stronie, która korzysta z certyfikatu Let’s Encrypt.
Jak zainstalować certyfikat Let’s Encrypt na domenie?
Można to zrobić przynajmniej na dwa sposoby: manualnie lub automatycznie, o ile dostawca naszego hostingu wdrożył u siebie pozwalające na to rozwiązanie. Listę firm hostingowych (w tym także z Polski), które pozwalają na automatyczne generowanie i odnowienia certyfikatów Let’s Encrypt można znaleźć na tej stronie (lista jest cały czas aktualizowana).
Automatyczna instalacja certyfikatu Let’s Encrypt
W przypadku automatycznej instalacji certyfikatu, w większości przypadków, udział człowieka sprowadza się do zalogowania np. w DirectAdmin (który od wersji 1.50.1) posiada wbudowaną na stałe obsługę certyfikatów Let’s Encrypt), a następnie:
- włączenia w panelu administracyjnym dla domeny szyfrowania dla domeny;
- zaznaczenia opcji użycia dowiązań symbolicznych w private_html do public_html (dzięki temu zabiegowi nie będzie konieczne przekopiowanie zawartości folderu public_html do private_html) i zapisaniu ustawień.
Po wykonaniu tych czynności, należy przejść do menu i odnaleźć Certyfikaty SSL, gdzie należy wybrać opcję „Darmowy certyfikat od Let’s Encrypt”.
W tym kroku konieczne będzie podanie m.in.: nazwy domeny, dla której ma zostać wygenerowany certyfikat; adresu email, który będzie służyć do odzyskiwania klucza w przypadku jego skasowania oraz do powiadomień odnośnie zbliżającego się terminu wygaśnięcia certyfikatu. Możliwe jest wybranie także długości klucza (zalecane to 4096 bit). Po uzupełnieniu w/w danych certyfikat zostanie wygenerowany oraz automatycznie zainstalowany na serwerze.
Ręczna instalacja certyfikatu Let’s Encrypt
Przeznaczona jest dla osób, które posiadają dostęp shell do serwera, na którym hostowane są strony (np. korzystające z VPS). Najprostszym sposobem jest zainstalowanie Certbota, czyli automatycznego klienta, który pobierze I uruchomi certyfikat SSL dla serwera. Szczegółowe informacje na ten temat dostępne są na stronie: certbot.eff.org, gdzie wystarczy wybrać rodzaj używanego oprogramowania np. serwer Apache oraz system operacyjny, aby otrzymać instrukcję krok-po-kroku, w jaki sposób skonfigurować Let’s Encrypt.
Podsumowanie
Bezpłatne certyfikaty Let’s Encrypt, w mojej opinii, świetnie sprawdzą się jako podstawowe zabezpieczenie dla celów indywidualnych, stron informacyjnych oraz stron typu firmowe „wizytówki”. Po wprowadzeniu wildcards będzie to na pewno ciekawa alternatywa dla stron z subdomenami. Właściciele e-commerce’ów w dalszym ciągu, w swoim rocznym budżecie, powinni zarezerwować opłatę związaną z odnowieniem certyfikatu.
Krótka historia protokołów używanych do szyfrowania danych
Idea zabezpieczenia poufności przesyłanych w Internecie danych powstała kilkanaście lat przed aferą Snowdena. Na początku lat 90. ubiegłego wieku Netscape Communications opracował protokół SSL (Secure Socket Layer). Jego druga wersja została wykorzystana w popularnej w tamtym czasie przeglądarce Netscape Navigator, która wyglądała mniej więcej tak (na dole widać nawet oznaczenie RSA):
Po wprowadzeniu systemu zabezpieczania danych szybko pojawiły się osoby, które postawiły sobie za cel złamać szyfrowanie lub znaleźć błędy w protokole. W związku z tym, już po roku od wprowadzenia SSL 2.0 została wydana wersja 3.0 (1996). Nowa wersja przetrwała trochę dłużej bo aż do 2014 roku, kiedy to po wykryciu podatności na atak POODLE została na mocy specyfikacji RFC7568 w czerwcu 2015 uznana za niewystarczająco bezpieczną i zdeprecjonowana.
Równocześnie z SSL zaczęto opracowywać nowy, bezpieczniejszy sposób szyfrowania danych i tak w 1999 roku powstał protokół TLS 1.0 (Transport Layer Security). Jest to rozwinięcie protokołu SSL 3.0, który w chwili obecnej nie jest już wykorzystywany do zabezpieczania danych. Obecnie protokół TLS jest standardem i jest używany do zabezpieczania połączeń – stąd określenie „certyfikat SSL” po części jest już nieprawidłowe.
Jak działa szyfrowanie w przypadku protokołu HTTP?
Mówiąc obrazowo: w momencie nawiązania połączenia z serwerem np. www.bluerank.pl, nasz komputer wysyła zapytanie do serwera, na którym umieszczona jest strona Bluerank z żądaniem zabezpieczonego połączenia. Serwer w odpowiedzi odsyła naszej przeglądarce klucz publiczny, który służy do wygenerowania klucza sesji. Klucz sesji jest szyfrowany przy użyciu klucza publicznego i odsyłany do serwera, gdzie jest odszyfrowywany za pomocą klucza prywatnego. Od tego momentu połączenie jest szyfrowane.
Klucz publiczny, klucz prywatny, klucz sesji – po co tyle tych kluczy?
Klucz publiczny, jak mówi jego nazwa, jest kluczem dostępnym publicznie i służy do szyfrowania wiadomości. W przypadku komunikacji HTTPS służy on do zaszyfrowania klucza sesji, dzięki czemu może on być bezpiecznie odesłany do serwera, gdzie zostaje rozszyfrowany za pomocą klucza prywatnego.
Klucz prywatny używany jest do odszyfrowania wiadomości zaszyfrowanej kluczem publicznym. W przypadku HTTPS klucz prywatny służy do odczytania trzeciego, unikalnego klucza jakim jest klucz sesji.