Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)

Być może niektórzy z Was zwrócili uwagę, że od jakiegoś czasu strona Webinsider.pl dostępna jest tylko w ramach połączenia szyfrowanego (HTTPS/SSL), choć niekoniecznie dlatego, że ponoć Google ma w swojej wyszukiwarce faworyzować strony dostepne w ramach połączenia szyfrowanego.

Po prostu dzięki temu łatwiej zarządzać np. konfiguracją strony/serwera, gdyż odpada podział na zasoby dostępne (również) w ramach połączenia nieszyfrowanego, i te dostępne tylko w ramach połączenia szyfrowanego…

Strona WWW i połączenie szyfrowane (HTTPS/SSL)

Wprawdzie cały wpis będzie dotyczył przejścia na połączenie szyfrowane (HTTPS) w przypadku korzystania z platformy WordPress, to spora jego część jest na tyle uniwersalna, że może wykorzystać w przypadku właściwie każdej strony – w przypadku WordPressa dochodzą dodatkowe operacje, specyficzne dla tego CMSa (tak jak np. niedawny wpis o wymuszeniu połączenia szyfrowanego z panelem zarządzania WordPressem).

Zakładam, że macie na swoim serwerze (lub hostingu, jeśli jest taka możliwość) skonfigurowany webserwer (Apache2, Nginx), oraz dodany certyfikat SSL (np. Let’s Encrypt, StartSSL), i od razu możemy przejść do niezbędnych modyfikacji, by cały ruch przełączyć na połączenie szyfrowane.

Konfiguracja po stronie (web)serwera

Zaczynamy od elementu uniwersalnego właściwie dla każdej strony, czyli konfiguracji webserwera, tak by każde odwołanie do strony w ramach połączenia nieszyfrowanego (HTTP) było automatycznie konwertowane na połączenie szyfrowane (HTTPS).

Apache2

W przypadku webserwera Apche2 możemy wykorzystać plik .htaccess znajdujący się w głównym katalogu strony (jeśli go nie ma, to należy go utworzyć):

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Alternatywna metoda:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://webinsider.pl/$1 [R=301,L]

Można ew. skorzystać jeszcze skorzystać z lekkiej wariacji na temat pierwszej metody:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://webinsider.pl/$1 [R=301,L]

Nginx

W przypadku webserwera Nginx najprościej chyba zmodyfikować plik vHosta (ten, w którym definiujemy domenę/stronę).

Najpierw – na samej górze pliku, przed główną sekcją “server” – dodajemy wpis, który przejmie każde połączenie na porcie 80 (ruch nieszyfrowany), i przekieruje je na HTTPS:

server {
 listen 80;
 server_name webinsider.pl *.webinsider.pl;
 return 301 https://webinsider.pl$request_uri;
}

Dodatkowo w głównej sekcji “server” kasujemy zapis:

listen 80;

I dodajemy/zostawiamy:

listen 443 ssl;

Po tej operacji oczywiście restart serwera lub ustawień:

sudo /etc/init.d/nginx reload

WordPress i połączenie szyfrowane (HTTPS/SSL)

Konfiguracja ogólna za nami, teraz pora na kilka dodatkowych elementów, które należy wykonać w przypadku gdy nasza strona działa na CMSie WordPress.

Pierwszym krokiem będzie zmiana adresu strony w ustawieniach – i choć można to zrobić bezpośrednio z panelu zarządzania WordPressem, to proponuję skorzystać z pliku wp-config.php, gdzie możemy “na sztywno” ustawić m.in. adres strony:

define('WP_HOME','https://webinsider.pl');
define('WP_SITEURL','https://webinsider.pl');

To rozwiązanie ma taką zaletę, że jakby coś nie chciało działać, to wystarczy skasować/zmodyfikować te 2 linijki.

Być może zwróciliście uwagę na to, że w adresie strony nie określiłem typu połączenia (HTTP/HTTPS), a zostawiłem tzw. adres relatywny, który we wszystkich współczesnych przeglądarkach powinien być prawidłowo interpretowany.

Choć oczywiście można ustawić typ połączenia na HTTPS:

define('WP_HOME','https://webinsider.pl');
define('WP_SITEURL','https://webinsider.pl');

Modyfikacja w bazie danych

Kolejnym krokiem jest zmiana w bazie danych wszelkich odwołań po HTTP do naszej strony – tu możecie wykorzystać informacje, które znajdują się we wpisie dotyczącym zmiany domeny, gdyż jest to dość podobna operacja.

Możecie też skorzystać z opisywanego niedawno skryptu Search Replace DB, czy narzędzia WP-CLI, dzięki czemu taka modyfikacja sprowadza się właściwie do jednego prostego polecenia:

wp search-replace --dry-run 'https://webinsider.pl' 'https://webinsider.pl'

Lub:

wp search-replace --dry-run 'https://webinsider.pl' 'https://webinsider.pl'
Jeśli zdecydowaliście się na korzystanie z linków relatywnych – bez określania czy chodzi o HTTP czy HTTPS – możecie zainstalować wtyczkę, która będzie “w locie” modyfikować adresy URL m.in. plików graficznych dodawanych do wpisów za pomocą edytora.

Niektóre wtyczki (np. popularny Revolution Slider) w bazie danych adres strony zapisując z dodatkowymi tzw. ukośnikami wstecznymi (backslash). Dlatego przy modyfikacji bazy danych warto również to uwzględnić, korzystając dodatkowo z takiego schematu:

Stara domena:

https:\/\/stara_domena.pl

Nowa domena:

https:\/\/nowa_domena.pl

Dzięki czemu nie będziecie musieli później ręcznie poprawiać np. slajderów…

Cloudflare Universal SSL

W przypadku gdy nie macie możliwości skonfigurowania połączenia szyfrowanego (np. niektóre hostingi współdzielone nie oferują takiej opcji), możecie skorzystać np. usługi Cloudflare, a konkretnie Cloudflare Universal SSL, by skonfigurować połączenie szyfrowane między serwerami Cloudflare, a przeglądarką użytkownika (w takim przypadku nieszyfrowane jest połączenie między serwerami Cloudflare, a serwerem na którym znajduje się Wasza strona).

Wystarczy, że w Cloudflare aktywujecie obsługę SSL, i jako typ szyfrowania ruchu wybierzecie “flexible” (gdy mamy certyfikat również po stronie serwera ustawiamy na “full” lub “full (strict)”.

Usługi zewnętrzne

W przypadku gdy na swojej stronie korzystacie z zewnętrznych usług/serwisów (np. statystyki, ale i Google Webmaster Tools) pamiętajcie by w ustawieniach tych usług dokonać zmiany adresu – nie zawsze jest to potrzebne, ale na pewno nie zaszkodzi…

(!) Zgłoś błąd na stronie | Lub postaw nam 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
Tworzysz stronę internetową i potrzebujesz pomocy?
Patryk
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)