Cel: Zielona kłódka – czym jest mieszana zawartość i jak z tym walczyć?

Brak zielonej kłódki w przeglądarce pomimo włączonego certyfikatu SSL – tzw. mixed content (żółta kłódka). Dlaczego tak się dzieje?

Czasem zdarza się, że po zainstalowaniu na stronie certyfikatu SSL oraz skonfigurowaniu strony, żeby wyświetlała się jako https://, w przeglądarce zamiast zielonej kłódki pojawi się żółta kłódka lub kłódka z ikoną ostrzegawczego trójkąta. Problemem jest to, że niektóre pliki strony internetowej zostały pobrane z użyciem protokołu HTTP a nie HTTPS, czyli inaczej mówiąc bez szyfrowania. Oznacza to, że na stronie część plików (najczęściej obrazki) są pobierane bez https. Często takie pliki mają w kodzie na sztywno wpisany adres z podaniem protokołu http. Inne oznaczenie tego problemu to tzw. „mixed content”, czyli mieszana treść strony (http i https).

Jak odnaleźć pliki, które powodują problem mixed content?

Zademonstrujemy na przykładzie narzędzi deweloperskich w przeglądarce Mozilla Firefox.

Po uruchomieniu przeglądarki (najlepiej w prywatnym oknie) klikamy F12 i przechodzimy do zakładki „Konsola”. Można to też zrobić klikając kombinację Ctrl + Shift + i. Pojawi się nam wtedy panel jak na poniższym screenie.

W konsoli wyświetlają się wszystkie pliki, które są wyświetlane przez http, a nie https. Najczęściej jest to zawartość pasywna (np. podlinkowane obrazki), która w atrybutach src w odnośnikach zawiera żądanie typu HTTP, a nie HTTPS. Istnieje również coś takiego jak mieszana zawartość aktywna. Ten typ mieszanej treści jest o tyle groźny, że może doprowadzić do ataku man-in-the-middle, czyli przechwycenie zapytania HTTP i wykradzenia poufnych danych.

Wiedząc już jakie pliki powodują problemy możemy spróbować się z nimi uporać. W przypadku prostej strony najlepiej będzie poszukać w kodzie strony odpowiednich adresów url, zmieniając w nich http:// na https://. Warto też zastanowić się nad dodaniem do pliku .htaccess wpisów wymuszających działanie https.

Usuwanie mixed content w WordPress

Na początek warto zajrzeć do ustawień ogólnych WordPressa, upewnić się, że w adresie jest „https” i zapisać ustawienia. Jeśli to nie pomoże można spróbować wykorzystać wtyczkę, która naprawi odnośniki. Polecam zapoznać się z wtyczką Better Search Replace. Jest ona łatwa w użyciu, a przy tym skuteczna. Nie zamienia adresów w locie, tylko zmienia wpisy w bazie na stałe, dzięki czemu nie obciąża tak bardzo naszego WordPressa. Sposób w jaki z jej pomocą można to zrobić znajdziecie w naszym poradniku: Włączanie certyfikatu SSL w WordPressie – Poradnik.

Wojciech Babicz
Latest posts by Wojciech Babicz (see all)