1. Home
  2. Pomoc
  3. SSL i bezpieczeństwo
  4. Mixed content: przekreślona kłódka mimo SSL

Mixed content: przekreślona kłódka mimo SSL

Masz aktywny certyfikat SSL, a przeglądarka i tak pokazuje przekreśloną kłódkę albo ostrzeżenie „Niepełne zabezpieczenie"? To mixed content, czyli mieszana zawartość. W tym artykule znajdziesz, skąd się bierze, jak namierzyć winne zasoby i jak je naprawić na dobre.

Czym jest mixed content

Strona ładuje się po HTTPS, ale część jej zasobów (obrazki, skrypty, style, fonty) wciąż wskazuje na adresy http://. Przeglądarka traktuje takie zasoby jako niezabezpieczone i dlatego nie pokazuje pełnej kłódki, mimo że certyfikat jest poprawny. Najczęściej to pozostałość po przejściu strony z http na https: adresy zostały zapisane w bazie lub na sztywno w plikach.

Krok 1: zdiagnozuj, co ładuje się po http

  1. Otwórz swoją stronę w przeglądarce (Chrome lub Firefox).
  2. Naciśnij F12, aby otworzyć narzędzia deweloperskie, i przejdź do zakładki Console (Konsola).
  3. Odśwież stronę. Poszukaj ostrzeżeń ze słowem Mixed Content. Przeglądarka wypisuje przy nich pełny adres każdego zasobu ładowanego po http, na przykład http://twojadomena.pl/wp-content/uploads/logo.png.
  4. Zapisz sobie te adresy. Pokazują dokładnie, co jeszcze trzeba przestawić na https.
Wskazówka

Jeśli na liście widzisz głównie własne obrazki i pliki z katalogu wp-content, problem rozwiąże zamiana adresów w bazie (Krok 2). Jeśli to pojedynczy skrypt lub obrazek z konkretnej wtyczki albo z ustawień motywu, popraw go ręcznie (Krok 3).

Krok 2: zamień adresy http na https w bazie

Najczęstsza przyczyna to stare adresy zapisane w bazie danych. Rozwiązuje je jednorazowa zamiana http://twojadomena.pl na https://twojadomena.pl w całej bazie, opisana krok po kroku w artykule o włączaniu HTTPS dla WordPressa (wtyczka Better Search Replace lub polecenie WP-CLI). Zanim ją uruchomisz, wykonaj snapshot bazy w zakładce Snapshot.

Po zamianie odśwież stronę i ponownie sprawdź konsolę. Większość ostrzeżeń zniknie.

Krok 3: popraw twarde linki w motywie i widgetach

Jeśli w konsoli zostały pojedyncze zasoby po http, są zwykle wpisane na stałe (na twardo) w:

  • ustawieniach motywu (logo, favicon, obrazek tła, adresy w customizerze),
  • widgetach i blokach HTML, gdzie ktoś wkleił pełny adres http://,
  • polach konfiguracji wtyczek (np. slidery, galerie, mapy).

Wejdź w te miejsca w kokpicie WordPressa i popraw adres z http:// na https:// (albo usuń http: i zostaw //, żeby zasób ładował się tym samym protokołem co strona). Zapisz zmiany i sprawdź konsolę jeszcze raz.

Krok 4: wyczyść cache po poprawkach

Serwer buforuje gotowe strony w NGINX Cache, więc po poprawkach odwiedzający (i Ty) mogą wciąż widzieć starą wersję z adresami http. Wyczyść cache:

  1. Zaloguj się do panel.jdm.pl → Hosting → przy stronie kliknij Szczegóły → zakładka Cache.
  2. Na karcie NGINX Cache kliknij Wyczyść Cache.

Karta NGINX Cache z przyciskiem Wyczyść Cache

  1. Odśwież stronę w przeglądarce z pominięciem jej pamięci: Ctrl+Shift+R (na Macu Cmd+Shift+R).
Po naprawie kłódka wraca

Gdy wszystkie zasoby ładują się po https, przeglądarka pokazuje pełną, nieprzekreśloną kłódkę, a ostrzeżenia Mixed Content w konsoli znikają. Efekt widać od razu po wyczyszczeniu cache i twardym odświeżeniu strony.

Najczęstsze problemy

Naprawiłem adresy, a kłódka dalej jest przekreślona.
To najczęściej cache. Kliknij Wyczyść Cache w zakładce Cache i odśwież stronę przez Ctrl+Shift+R. Dopiero wtedy sprawdź konsolę ponownie.

W konsoli zostało jedno ostrzeżenie z adresu innej domeny.
To zasób wstawiany z zewnętrznego serwisu, który nie obsługuje HTTPS (np. stary licznik czy baner). Wymień go na wersję po https albo usuń ze strony. Jednego takiego zasobu nie da się naprawić po Twojej stronie.

Czy wtyczka Really Simple SSL nie załatwi tego za mnie?
Odradzamy. Ta wtyczka podmienia adresy w locie przy każdym ładowaniu strony, co jest stałym, niepotrzebnym obciążeniem. Jednorazowa zamiana w bazie (Krok 2) jest szybsza i trwała.

Czy był pomocny?

Podobne

Potrzebujesz pomocy?
Nie możesz znaleźć odpowiedzi, której szukasz? Nie martw się, jesteśmy tutaj, aby pomóc!
Napisz do nas