Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)

Wprawdzie jakiś czas temu przez internet przetoczyła się dyskusja, że „od teraz” Google będzie promować strony serwowane użytkownikom po SSL/HTTPS, a resztę czeka wielki i bolesny spadek w dół, to osobiście na kilku stronach które zostały bez SSL (z różnych przyczyn), a mają większość ruchu z wyszukiwarki nie zauważyłem jakiś różnic wskazujących na tego typu pogram.

Nie oznacza to, że mam coś przeciwko SSL – wręcz przeciwnie, wszędzie gdzie jest to uzasadnione (lub konieczne) korzystam z szyfrowanego połączenia, np. w panelu zarządzania/administrowania WordPressem (WP-Admin), i dziś chciałbym Wam właśnie pokazać, jak w prosty sposób można wymusić bezpieczne połączenie z nim…

WP-Admin i (wymuszone połączenie) SSL/HTTPS

Obecnie pozyskanie certyfikatu SSL dla strony/domeny nie dość, że może być w pełni bezpłatne, to jeszcze jest relatywnie proste i wygodne – niezależnie czy korzystacie z hostingu współdzielonego, czy serwera VPS.

Wystarczy wspomnieć o takich rozwiązaniach usługach jak Let’s Encrypt, Cloudflare Universal SSL, StartSSL, czy – w ostateczności – certyfikacie wygenerowanym samodzielnie (lub dostępnym w ramach konta hostingowego), który na własne potrzeby również będzie wystarczający, a w połączeniu z Cloudflare Universal SSL w trybie Flexible „jego mankament” będzie właściwie niedostrzegalny dla przeciętnego użytkownika Twojej strony.

Dlatego nie ma powodu, dla którego nie warto w ten sposób (dodatkowo) zabezpieczyć logowania/połączenia do panelu zarządzania/administrowania WordPressem.

Force SSL Admin

By wymusić (!) dostęp do panelu (i okna logowania) WordPressem wystarczy w pliku wp-config.php (plik znajduje się w głównym katalogu WordPressa) dodać jedną linijkę:

define('FORCE_SSL_ADMIN', true);

Zaletą tego rozwiązanie jest również to, że jakby coś było nie tak z połączeniem SSL z Waszą stroną, to wystarczy usunąć dodaną wcześniej linijkę, i strona powinna ponownie działać, tak jak wcześniej…

Ja zazwyczaj dodaje własne/dodatkowe zapisy tuż nad linijką:

/* To wszystko, zakończ edycję w tym miejscu! Miłego blogowania! */

Ew. w wersji angielskiej będzie to:

/* That's all, stop editing! Happy blogging. */

W tym miejscu chciałbym pozdrowić Marcina… ;-)

Kiedyś można było wymusić połączenie SSL tylko na stronie logowania:

define('FORCE_SSL_LOGIN', true);

Ale aktualnie – od wersji WP 4.0 – obsługa tego parametru została zaniechana.

Infinite redirect loop, czyli pętla śmierci

W większości przypadków podane rozwiązanie wystarczy, od tego momentu panel zarządzania WordPressem powinien być dostępny tylko i wyłącznie w ramach połączenia szyfrowanego (w przypadku certyfikatu podpisanego samodzielnie może być jeszcze wymagana akceptacja połączenia w przeglądarce, gdyż połączenie/certyfikat może zostać zgłoszony jako niezaufany).

Ale czasem – zwłaszcza w przypadku hostingu – może się zdarzyć, że zamiast panelu zarządzania lub okna logowania zobaczycie w przeglądarce komunikat błędu, np. w Firefoxie wygląda on tak:

firefox_redirect-loop

Nieprawidłowe przekierowanie

Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.

  • Problem ten może się pojawić w wyniku zablokowania lub odrzucenia ciasteczek.

Rozwiązaniem będzie dodanie w pliku wp-config.php – np. poniżej linijki wymuszającej połączenie SSL z panelem zarządzania – tych 2 linijek:

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';

Oczywiście nie ma gwarancji, że to zadziała na pewno, ale do tej pory nie trafiłem na hosting, w którym to by nie zadziałało – a miałem bezpośrednio lub pośrednio konta hostingowe chyba u większości najpopularniejszych dostawców, a przynajmniej w kraju.

Jeśli jednak w Waszym przypadku byłoby inaczej, to albo piszcie w komentarzach i/lub zerknijcie na stronę poświęconą administracji po SSL w Codexie WordPressa, gdzie znajdziecie dodatkowe informacje związane z tym tematem, w tym m.in. gotowe reguły do pliku .htaccess (Apache2).

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)
Patryk
Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)