Darmowy SSL dla dowolnej witryny WordPress

Opublikowany: 2022-03-10
Szybkie podsumowanie ↬ Jeśli masz witrynę e-commerce, SSL jest obowiązkowy do bezpiecznego przetwarzania kart kredytowych. Ale nawet jeśli nie przetwarzasz płatności, powinieneś poważnie rozważyć bezpieczny HTTP (lub HTTPS), zwłaszcza teraz, gdy pokażę Ci, jak szybko go skonfigurować, za darmo. Zacznijmy. Krótko mówiąc, SSL to „S” w HTTPS. Dodaje warstwę szyfrowania do protokołu HTTP, która zapewnia, że ​​odbiorca jest rzeczywiście tym, za kogo się podaje, i że tylko autoryzowani odbiorcy mogą odszyfrować wiadomość, aby zobaczyć jej zawartość.

Jeśli masz witrynę e-commerce, SSL jest wymagany do bezpiecznego przetwarzania kart kredytowych. Ale nawet jeśli nie przetwarzasz płatności, powinieneś poważnie rozważyć bezpieczny HTTP (lub HTTPS), zwłaszcza teraz, gdy pokażę Ci, jak szybko go skonfigurować, za darmo. Zacznijmy.

Co to jest SSL i dlaczego powinno mnie to obchodzić?

Krótko mówiąc, SSL to „S” w HTTPS. Dodaje warstwę szyfrowania do protokołu HTTP, która zapewnia, że ​​odbiorca jest rzeczywiście tym, za kogo się podaje, i że tylko autoryzowani odbiorcy mogą odszyfrować wiadomość, aby zobaczyć jej zawartość.

Dalsze czytanie na SmashingMag:

  • HTTPS wszędzie z Nginx, lakierem i Apache
  • Jak wydać nowy certyfikat SSL ze starym kluczem SSL?
  • Przygotowanie do HTTP/2: przewodnik dla projektantów stron internetowych

Poufne informacje, takie jak numery kart kredytowych – w zasadzie wszystko, co prywatne – powinny być zawsze podawane przez HTTPS. Istnieje jednak rosnąca tendencja do obsługiwania wszystkich treści za pośrednictwem protokołu HTTPS, co obserwujemy w witrynach z wiadomościami, blogach, wyszukiwarkach i witrynach większości popularnych marek. Tak więc, nawet jeśli Twoja witryna nie przetwarza płatności, istnieją dobre powody, aby rozważyć HTTPS, z których kilka wymieniono tutaj:

Więcej po skoku! Kontynuuj czytanie poniżej ↓
  • Wiarygodność . Nawet nietechniczni odbiorcy kojarzą małą zieloną kłódkę na pasku adresu przeglądarki z zaufaniem i niezawodnością.
  • Ochrona hasłem . Być może Twoja witryna zawiera tylko filmy z kotkami. Ale jeśli użytkownicy logują się do Twojej witryny przez Wi-Fi za pomocą hasła, którego używają również do bankowości internetowej, potencjalnie ułatwiasz poważne naruszenie bezpieczeństwa, rozpowszechniając te dane uwierzytelniające publicznie.
  • Zabezpieczenie na przyszłość . Wiele stron internetowych jest nadal obsługiwanych przez HTTP, ale istnieje niezaprzeczalny trend w kierunku HTTPS, który będzie się zwiększał, gdy użytkownicy będą coraz lepiej edukować się w zakresie bezpieczeństwa sieci. Bądź po właściwej stronie historii.
  • SEO . Google oficjalnie ogłosiło, że HTTPS jest używany jako sygnał rankingowy. Innymi słowy, Google nagradza witryny HTTPS, poprawiając ich pozycję w wynikach wyszukiwania.

Powszechnym argumentem przeciwko HTTPS jest to, że zmniejsza wydajność. To prawda, że ​​proces szyfrowania i odszyfrowywania kosztuje dodatkowe milisekundy, ale w większości sytuacji jest to znikome, o czym świadczy fakt, że firmy dbające o wydajność, takie jak Google i Facebook, udostępniają całą swoją zawartość za pośrednictwem protokołu HTTPS. I to prawda, że ​​HTTPS może zaostrzyć istniejące problemy z wydajnością, na przykład wiele plików CSS obsługiwanych pojedynczo, ale można to złagodzić, stosując podstawowe najlepsze praktyki dotyczące wydajności. A wraz z przyjęciem HTTP/2 koszt wydajności HTTPS jest jeszcze niższy. Najważniejsze jest to, że zmniejszenie wydajności jest znaczącym środkiem odstraszającym tylko wtedy, gdy Twoja witryna jest zbyt zoptymalizowana lub ma tak niską wydajność, że każda milisekunda ma znaczenie.

Jak skonfigurować HTTPS za darmo?

Pierwszym krokiem do skonfigurowania HTTPS za darmo jest zarejestrowanie się w usłudze DNS w chmurze. Jeśli nie masz pojęcia, czym jest DNS, zalecamy poświęcenie minuty na naukę przed kontynuowaniem. Wspaniały How DNS Works świetnie radzi sobie z rozbiciem go na dziwaczną kreskówkę. W przeciwnym razie po prostu wiedz, że DNS to system, w którym nazwy domen, takie jak example.com (które rozumieją ludzie) są łączone z adresami IP, takimi jak 104.28.2.167 (które rozumieją komputery). Masz wiele opcji, ale jestem fanem CloudFlare, ponieważ konfiguracja jest naprawdę szybka, pulpit nawigacyjny jest intuicyjny, a darmowy plan jest dostępny z wieloma zaawansowanymi funkcjami.

Konfigurowanie CloudFlare

Po zarejestrowaniu konta CloudFlare przejdziesz przez łatwy kreator konfiguracji swojej pierwszej strony internetowej, który zakończy się instrukcjami, jak zalogować się do rejestratora domeny i wskazać serwery nazw CloudFlare. Propagacja zmiany zajmie trochę czasu, ale po jej zakończeniu CloudFlare będzie hostować rekordy DNS Twojej witryny. Następnie włącz funkcję „elastycznego SSL” CloudFlare.

Pulpit nawigacyjny CloudFlare
Pulpit nawigacyjny CloudFlare z ustawieniem SSL (Wyświetl dużą wersję)

Wybranie ustawienia „elastycznego SSL” jest ważne, ponieważ nie wymaga kupowania i instalowania własnego certyfikatu SSL na serwerze Twojej witryny. Oto schemat tego, co się dzieje.

Elastyczny diagram SSL CloudFlare
Elastyczny diagram SSL CloudFlare (Zobacz w dużej wersji)

Jak widać, CloudFlare działa jako pośrednik w zabezpieczaniu ruchu między Twoją witryną a klientem. Gdyby była to statyczna witryna HTML, można by teraz połączyć się z nią przez HTTPS ( https://yourdomain.com ). WordPress wymaga jednak dodatkowej konfiguracji do pracy ze zmodyfikowanym protokołem.

Ponowna konfiguracja WordPressa z HTTP na HTTPS

Najpierw musisz zaktualizować ustawienia „Adres WordPressa” i „Adres witryny” na pulpicie nawigacyjnym, w sekcji „Ustawienia” → „Ogólne”. Gdy to zrobisz, będziesz musiał ponownie zalogować się do pulpitu nawigacyjnego.

Pulpit WordPress
Pulpit WordPress z ustawieniami adresu URL (Wyświetl dużą wersję)

Postępuj ostrożnie. Jeśli zaktualizujesz te ustawienia przedwcześnie, ryzykujesz zablokowanie się. Na przykład, jeśli witryna nie jest jeszcze poprawnie skonfigurowana do obsługi protokołu HTTPS, a ustawienia zostaną zaktualizowane, możesz spowodować pętlę przekierowania, która przerwie witrynę i uniemożliwi dostęp do pulpitu nawigacyjnego.

W tym momencie powinieneś być w stanie odwiedzić stronę główną witryny za pośrednictwem protokołu HTTPS. Jednak łącza do stron nadal będą wskazywać na adresy URL HTTP. WordPress przechowuje linki do stron i obrazów jako bezwzględne adresy URL, co oznacza, że ​​pełny adres URL, w tym protokół, jest zapisywany w bazie danych. Aby upewnić się, że cała witryna jest stale obsługiwana przez HTTPS (bez wyrzucania ostrzeżeń o mieszanych treściach), musisz zaktualizować starsze treści.

Aktualizowanie starszej zawartości

W małej witrynie z zaledwie kilkoma stronami najszybszą opcją może być po prostu ręczna aktualizacja adresów URL poprzez edycję istniejących stron w interfejsie administratora. Jeśli witryna jest duża lub ma bardzo aktywny blog, ręczne edytowanie prawdopodobnie nie jest praktyczne. Jeśli Twój host udostępnia phpMyAdmin lub inny interfejs do uruchamiania zapytań MySQL, możesz to zrobić całkiem łatwo za pomocą kilku zapytań MySQL w zakładce SQL. Alternatywnie możesz postępować zgodnie z instrukcjami Dostosuj system Windows, aby zrobić to z wiersza poleceń.

Ryzykując stwierdzenie oczywiste, zastąp yourdomain.com w poniższych zapytaniach rzeczywistą domeną . Ponadto, jeśli dostosowałeś prefiks tabeli WordPress, zastąp wp_ odpowiednim prefiksem.

Najpierw zaktualizuj adresy URL postów i stron.

 UPDATE wp_posts SET guid = replace(guid, 'https://yourdomain.com','https://yourdomain.com');

[AKTUALIZACJA: Jak omówiono w komentarzach, pole guid nie powinno być edytowane.]

Zaktualizuj również tabelę wp_postmeta .

 UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://yourdomain.com','https://yourdomain.com');

Na koniec zaktualizuj rzeczywistą zawartość postów lub stron. Spowoduje to zaktualizowanie wszelkich linków zwrotnych do protokołu HTTPS.

 UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://yourdomain.com', 'https://yourdomain.com');

Po uruchomieniu tych zapytań będziesz chciał odświeżyć swoje permalinki, przechodząc do „Ustawienia” → „Permalinki”. Po prostu zmień ustawienie z powrotem na domyślne, a następnie ustaw je z powrotem na dowolne ustawienie, którego pierwotnie używałeś.

Teraz powinieneś być w stanie klikać menu i linki w całej witrynie, a protokół powinien pozostać HTTPS.

Rozwiązywanie problemów z ostrzeżeniami dotyczącymi treści mieszanej

W zależności od używanego motywu i wtyczek na pasku adresu może pojawić się ostrzeżenie, że niektóre zasoby nie są obsługiwane w bezpieczny sposób. Jeśli błędy są powiązane z zasobami dodanymi przez Twój własny niestandardowy motyw lub wtyczkę, upewnij się, że prawidłowo umieszczasz w kolejce pliki JavaScript i CSS, a nie zakodowane na stałe adresy URL rozpoczynające się od HTTP . Większość przeglądarek pozwala rozwinąć ostrzeżenie, aby pokazać konkretne żądania, które powodują błąd. Możesz także wypróbować darmową wtyczkę, taką jak SSL Insecure Content Fixer, która spróbuje naprawić wtyczki innych firm, które tego nie zrobiły.

W tym momencie powinieneś zobaczyć zieloną kłódkę na pasku adresu podczas odwiedzania swojej witryny. Jeśli nie korzystasz z wtyczki e-commerce, takiej jak WooCommerce lub WP eCommerce, gotowe! Jeśli tak, to jest ważny ostatni krok.

Uzyskiwanie elastycznego SSL do pracy z wtyczkami e-commerce

WordPress ma podstawową funkcję o nazwie is_SSL() , na której opierają się wtyczki, aby określić, czy ruch jest szyfrowany za pomocą SSL. Z samą powyższą metodą ta funkcja zwróci wartość false , ponieważ szyfrowanie odbywa się tylko między CloudFlare a klientem. Ruch, z którym współdziała PHP, jest nieszyfrowany, więc super globalna funkcja sprawdzana przez tę funkcję (tj $_SERVER['HTTPS'] ) nie byłaby przydatna. Dla naszego celu odpowiednią zmienną jest $_SERVER['HTTP_X_FORWARDED_PROTO'] , której WordPress w chwili pisania tego tekstu nie rozpoznaje. Prośba o zmianę tego jest od dawna, ale nie została jeszcze rozwiązana.

Na szczęście bezpłatna wtyczka natychmiast to naprawi, CloudFlare Flexible SSL. Po prostu zainstaluj wtyczkę i aktywuj ją. Pamiętaj, że ta technika nie zwiększa bezpieczeństwa . Ruch między CloudFlare a serwerem Twojej witryny jest nadal nieszyfrowany, a zatem nadal podatny na sniffing.

Elastyczny SSL nie jest pełnym SSL

Inicjatywa CloudFlare „Universal SSL” jest interesującą próbą zwiększenia bezpieczeństwa Internetu, ale nie jest pozbawiona kontrowersji. Podstawowym problemem jest to, że elastyczny SSL nie szyfruje drugiej połowy podróży ruchu (do twojego serwera), ale przeglądarka nadal pokazuje tę samą zieloną kłódkę, którą kojarzymy z pełnym SSL. CloudFlare podaje na swoim blogu następujące uzasadnienie:

Posiadanie najnowocześniejszego szyfrowania może nie wydawać się ważne dla małego bloga, ale ma kluczowe znaczenie dla rozwoju przyszłości Internetu z domyślnym szyfrowaniem. Każdy bajt, jakkolwiek pozornie prozaiczny, który przepływa zaszyfrowany przez Internet, utrudnia to tym, którzy chcą przechwycić, dławić lub cenzurować sieć. Innymi słowy, zapewnienie, że Twój osobisty blog jest dostępny przez HTTPS, zwiększa prawdopodobieństwo, że organizacja praw człowieka, serwis społecznościowy lub niezależny dziennikarz będą dostępne na całym świecie. Razem możemy robić wielkie rzeczy.

Na dobre lub na złe, elastyczny SSL jest tutaj, a Internet będzie musiał się dostosować. W międzyczasie na właścicielach witryn spoczywa ciężar edukacji i podejmowania odpowiedzialnych decyzji.

Przekierowywanie żądań HTTP do HTTPS

Włączenie witryny internetowej do działania w protokole HTTPS nie gwarantuje, że żądania będą faktycznie korzystać z protokołu. Jeśli Twoja witryna istnieje już od jakiegoś czasu, użytkownicy mogli już dodać ją do zakładek za pomocą protokołu HTTP. Możesz przekierować wszystkie żądania HTTP do nowego protokołu, dodając następujący fragment kodu w górnej części pliku .htaccess w katalogu głównym witryny. Jeśli plik nie istnieje, możesz go bezpiecznie dodać.

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://yourdomain.com/$1 [R=301,L] </IfModule>

Jeśli plik .htaccess już istnieje, uważaj, aby nie zmieniać niczego między wierszami # BEGIN WordPress i # END WordPress w tym pliku. Te wiersze są zarządzane przez WordPress, a za każdym razem, gdy permalinki zostaną odświeżone, zawartość w tej sekcji zostanie nadpisana.

Gratulacje

Aktualizując swoją witrynę do HTTPS, poprawiłeś swoją witrynę, chroniłeś użytkowników i uczestniczyłeś w rozwoju Internetu. I nic Cię to nie kosztowało!