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 %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://webinsider.pl/$1 [R=301,L]

Można ew. skorzystać jeszcze ze zmiennej HTTPS, ale z moich notatek wynika, że nie zawsze ta zmienna jest skonfigurowana po stronie serwera, i stąd czasem poniższa reguła może nie działać:

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','//webinsider.pl');
define('WP_SITEURL','//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' '//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.

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

Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!

WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które - w miarę możliwości - spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. "linki partnerskie", co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte... :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.

Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!