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…
Spis treści w artykule
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.
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'
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…
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01