Wstęp
Cloudflare i SSL mogą poprawić bezpieczeństwo oraz obsługę HTTPS na stronie WordPress, ale nieprawidłowa konfiguracja szyfrowania między Cloudflare a serwerem może prowadzić do błędów HTTPS, ostrzeżeń certyfikatu lub pętli przekierowań. Najważniejsze jest prawidłowe ustawienie trybu SSL/TLS oraz upewnienie się, że połączenie między Cloudflare i serwerem również działa poprawnie.
Szybkie rozwiązanie
- W Cloudflare ustaw odpowiedni tryb SSL/TLS
- Najlepiej używaj trybu Full (strict), jeśli serwer ma prawidłowy certyfikat
- Sprawdź, czy WordPress korzysta z adresu HTTPS
- Nie wymuszaj HTTPS jednocześnie na kilka różnych sposobów
- Sprawdź przekierowania w .htaccess i ustawienia serwera
Krok 1: Sprawdź tryb SSL/TLS w Cloudflare
Zaloguj się do panelu Cloudflare i przejdź do ustawień SSL/TLS swojej domeny.
Cloudflare oferuje kilka trybów szyfrowania połączenia z serwerem. Jeśli Twój serwer posiada prawidłowy certyfikat SSL, najlepszym rozwiązaniem jest zazwyczaj:
Full (strict)
W tym trybie połączenie pomiędzy przeglądarką a Cloudflare oraz pomiędzy Cloudflare a serwerem jest szyfrowane, a Cloudflare dodatkowo sprawdza certyfikat serwera.
Jeśli hosting nie oferuje bezpłatnego certyfikatu SSL, np. Let’s Encrypt, możesz wygenerować w Cloudflare bezpłatny Origin Certificate i zainstalować go na serwerze. Certyfikat ten służy do szyfrowania połączenia pomiędzy Cloudflare a serwerem i dobrze współpracuje z trybem Full (strict).
Krok 2: Unikaj trybu Flexible przy wymuszonym HTTPS
Jedną z częstych przyczyn pętli przekierowań jest połączenie trybu Flexible z wymuszaniem HTTPS na serwerze.
W takim przypadku użytkownik łączy się z Cloudflare przez HTTPS, ale Cloudflare może komunikować się z serwerem przez HTTP. Serwer widzi połączenie HTTP i przekierowuje je ponownie na HTTPS, co może doprowadzić do błędu:
ERR_TOO_MANY_REDIRECTS
Jeżeli serwer obsługuje HTTPS, lepiej skonfigurować Cloudflare tak, aby również komunikował się z nim przez szyfrowane połączenie.
Krok 3: Sprawdź adres WordPress
W panelu WordPress przejdź do:
Ustawienia → Ogólne
Sprawdź pola Adres WordPressa (URL) oraz Adres witryny (URL). Jeśli strona ma działać przez HTTPS, oba adresy powinny korzystać z:
https://
Przykładowo:
https://twojadomena.pl
Nie powinno być sytuacji, w której jeden adres wykorzystuje HTTP, a drugi HTTPS, jeśli cała witryna ma działać przez szyfrowane połączenie.
Krok 4: Sprawdź HTTP_X_FORWARDED_PROTO
W niektórych konfiguracjach WordPress może nieprawidłowo rozpoznawać, że użytkownik korzysta z HTTPS, ponieważ Cloudflare działa jako pośrednik między przeglądarką a serwerem. W takiej sytuacji pomocne może być przekazanie informacji o protokole za pomocą nagłówka HTTP_X_FORWARDED_PROTO.
Jeśli problem nadal występuje, w pliku wp-config.php, przed linią:
/* That's all, stop editing! Happy publishing. */
można dodać:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
Takie rozwiązanie powinno być stosowane tylko wtedy, gdy konfiguracja serwera i Cloudflare rzeczywiście wymaga takiej obsługi. Nie warto dodawać tego kodu profilaktycznie do każdej instalacji WordPressa.
Krok 5: Sprawdź przekierowania HTTP → HTTPS
Przekierowanie z HTTP na HTTPS jest prawidłowym rozwiązaniem, ale nie powinno być ustawiane jednocześnie w kilku miejscach bez sprawdzenia ich wzajemnego działania.
Sprawdź między innymi:
- Cloudflare
- plik .htaccess
- ustawienia serwera
- wtyczki WordPress odpowiedzialne za SSL
Jeżeli kilka mechanizmów wykonuje własne przekierowania, mogą powstać konflikty prowadzące do pętli.
Krok 6: Sprawdź plik .htaccess
Jeżeli na serwerze Apache lub LiteSpeed używane jest przekierowanie HTTPS w pliku .htaccess, sprawdź, czy reguły nie powodują wielokrotnego przekierowania.
Przykładowa prosta reguła przekierowująca HTTP na HTTPS może wyglądać tak:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Nie należy jednak bez sprawdzenia dokładać kolejnych reguł, jeśli przekierowanie HTTPS jest już prawidłowo obsługiwane przez inne elementy konfiguracji.
Krok 7: Sprawdź „Always Use HTTPS”
Cloudflare umożliwia automatyczne przekierowywanie użytkowników z HTTP na HTTPS. Jeżeli korzystasz z tej funkcji, sprawdź, czy nie istnieje dodatkowe przekierowanie wykonujące dokładnie tę samą operację w sposób powodujący konflikt.
Samo wymuszanie HTTPS nie jest problemem. Problem pojawia się wtedy, gdy Cloudflare, serwer lub WordPress nie zgadzają się co do tego, czy aktualne połączenie jest szyfrowane.
Najczęstsze przyczyny błędów HTTPS
- nieprawidłowy tryb SSL/TLS w Cloudflare
- tryb Flexible przy wymuszonym HTTPS na serwerze
- brak prawidłowego certyfikatu SSL na serwerze
- sprzeczne przekierowania HTTP → HTTPS
- nieprawidłowy adres URL WordPress
- wtyczka ingerująca w obsługę SSL lub przekierowania
FAQ
Jaki tryb SSL wybrać w Cloudflare?
Jeżeli serwer ma prawidłowy certyfikat SSL, warto korzystać z trybu Full (strict). Zapewnia on szyfrowanie zarówno pomiędzy użytkownikiem i Cloudflare, jak również pomiędzy Cloudflare i serwerem.
Czy tryb Flexible może powodować pętlę przekierowań?
Tak. Jeśli serwer wymusza HTTPS, a Cloudflare łączy się z nim przez HTTP, może dojść do powtarzających się przekierowań i błędu ERR_TOO_MANY_REDIRECTS.
Czy można używać Cloudflare i certyfikatu SSL na serwerze jednocześnie?
Tak. Jest to wręcz zalecane przy konfiguracji Full (strict), ponieważ połączenie pomiędzy Cloudflare a serwerem również jest wtedy szyfrowane.
Czy „Always Use HTTPS” trzeba włączać?
Można z niego korzystać, jeśli strona jest prawidłowo skonfigurowana do obsługi HTTPS. Przed włączeniem warto upewnić się, że certyfikat i ustawienia SSL/TLS działają poprawnie.
Co zrobić, gdy pojawia się ERR_TOO_MANY_REDIRECTS?
W pierwszej kolejności sprawdź tryb SSL/TLS w Cloudflare, adresy URL WordPress oraz wszystkie miejsca, w których ustawiono przekierowanie HTTP na HTTPS.
Podsumowanie
Cloudflare i SSL mogą działać bezproblemowo z WordPressem, jeśli prawidłowo skonfigurujesz szyfrowanie pomiędzy Cloudflare, użytkownikiem i serwerem. Najczęściej warto użyć Full (strict), sprawdzić certyfikat na serwerze oraz unikać sytuacji, w której kilka różnych mechanizmów jednocześnie wymusza przekierowanie na HTTPS.
Komentarze
Masz ten sam problem lub inne rozwiązanie?
Dyskutuj o tym artykule i podziel się swoim doświadczeniem:
Przejdź do zewnętrznej dyskusji na Facebooku dla tego artykułu
Ten problem nadal występuje? Napisz w komentarzu, spróbuję pomóc.