{"id":90121,"date":"2026-10-16T10:10:00","date_gmt":"2026-10-16T08:10:00","guid":{"rendered":"https:\/\/codescriptum.pl\/blog\/przegladarka-pokazuje-niezabezpieczona-strona\/"},"modified":"2026-10-16T10:10:00","modified_gmt":"2026-10-16T08:10:00","slug":"przegladarka-pokazuje-niezabezpieczona-strona","status":"publish","type":"post","link":"https:\/\/codescriptum.pl\/blog\/przegladarka-pokazuje-niezabezpieczona-strona\/","title":{"rendered":"Przegl\u0105darka pokazuje \u201eNiezabezpieczona\u201d przy adresie strony - przyczyny i naprawa"},"content":{"rendered":"<p>Napis \u201eNiezabezpieczona\u201d oznacza, \u017ce strona otwiera si\u0119 przez zwyk\u0142e HTTP albo \u017ce po\u0142\u0105czenie HTTPS ma b\u0142\u0105d: brak lub wygas\u0142y certyfikat, certyfikat wystawiony dla innego adresu albo elementy strony \u0142adowane przez http. Naprawa to zwykle w\u0142\u0105czenie certyfikatu w panelu hostingu, przekierowanie ca\u0142ej strony na https i poprawienie starych adres\u00f3w w tre\u015bciach.<\/p>\n<h2>Co dok\u0142adnie oznacza \u201eNiezabezpieczona\u201d w Chrome?<\/h2>\n<p>\u017be dane przesy\u0142ane mi\u0119dzy odwiedzaj\u0105cym a stron\u0105 nie s\u0105 szyfrowane albo szyfrowanie ma b\u0142\u0119dy, wi\u0119c kto\u015b po drodze mo\u017ce je podejrze\u0107 lub zmieni\u0107. Pomoc Chrome wprost wskazuje, \u017ce naprawi\u0107 to mo\u017ce tylko w\u0142a\u015bciciel strony, przechodz\u0105c na HTTPS.<\/p>\n<p>Warto rozr\u00f3\u017cni\u0107 trzy sytuacje, bo ka\u017cda ma inn\u0105 przyczyn\u0119:<\/p>\n<ul>\n<li><strong>napis \u201eNiezabezpieczona\u201d przy adresie<\/strong>: strona otwiera si\u0119 przez http albo \u0142aduje cz\u0119\u015b\u0107 element\u00f3w przez http,<\/li>\n<li><strong>pe\u0142noekranowe ostrze\u017cenie, \u017ce po\u0142\u0105czenie nie jest prywatne<\/strong>: certyfikat wygas\u0142, jest wystawiony dla innej nazwy albo serwer jest \u017ale skonfigurowany,<\/li>\n<li><strong>czerwone ostrze\u017cenie \u201eNiebezpieczna\u201d<\/strong>: stron\u0119 oznaczy\u0142a us\u0142uga Bezpieczne przegl\u0105danie, zwykle po w\u0142amaniu. To inny problem, opisany we wpisie <a href=\"\/blog\/wordpress-zhakowany-co-robic-7-krokow-do-odzyskania-strony\/\">WordPress zhakowany: co robi\u0107<\/a>.<\/li>\n<\/ul>\n<p>Problem b\u0119dzie coraz bardziej widoczny. Google zapowiedzia\u0142, \u017ce od Chrome 154, planowanego na pa\u017adziernik 2026 r., przegl\u0105darka domy\u015blnie zapyta u\u017cytkownika o zgod\u0119 przed pierwszym wej\u015bciem na publiczn\u0105 stron\u0119 bez HTTPS. Dla strony na http oznacza to dodatkowy ekran ostrze\u017cenia przed pierwsz\u0105 wizyt\u0105.<\/p>\n<h2>Dlaczego strona jest oznaczona jako niezabezpieczona?<\/h2>\n<p>Najcz\u0119\u015bciej z jednego z pi\u0119ciu powod\u00f3w: brak certyfikatu, wygas\u0142y lub \u017ale wystawiony certyfikat, brak przekierowania z http na https, mieszana tre\u015b\u0107 albo formularz wysy\u0142aj\u0105cy dane na adres http.<\/p>\n<h3>Brak certyfikatu SSL<\/h3>\n<p>Hosting nie ma w\u0142\u0105czonego certyfikatu dla domeny. Wi\u0119kszo\u015b\u0107 firm hostingowych pozwala w\u0142\u0105czy\u0107 darmowy certyfikat Let's Encrypt w panelu jednym prze\u0142\u0105cznikiem i sama go odnawia. Je\u015bli Tw\u00f3j hosting tego nie oferuje, a masz dost\u0119p do serwera, certyfikat wystawisz klientem ACME, np. Certbot.<\/p>\n<h3>Certyfikat wygas\u0142 albo nie obejmuje adresu<\/h3>\n<p>Automatyczne odnowienie przestaje dzia\u0142a\u0107, gdy zmienisz DNS, w\u0142\u0105czysz proxy przed serwerem albo domena zacznie wskazywa\u0107 inny hosting. Cz\u0119sty b\u0142\u0105d to te\u017c certyfikat tylko dla <code>domena.pl<\/code>, bez <code>www.domena.pl<\/code>. Certyfikaty Let's Encrypt s\u0105 wa\u017cne 90 dni, a wed\u0142ug zapowiedzi Let's Encrypt od lutego 2027 r. b\u0119dzie to 64 dni, od lutego 2028 r. 45 dni. R\u0119czne odnawianie przestaje wi\u0119c mie\u0107 sens, a monitoring daty wyga\u015bni\u0119cia staje si\u0119 obowi\u0105zkowy.<\/p>\n<h3>Brak przekierowania z http na https<\/h3>\n<p>Strona dzia\u0142a pod https, ale wpisanie samej domeny albo stary link otwiera wersj\u0119 http. Wtedy jedni odwiedzaj\u0105cy widz\u0105 k\u0142\u00f3dk\u0119, a inni ostrze\u017cenie, a Google widzi dwie wersje tej samej strony.<\/p>\n<h3>Mieszana tre\u015b\u0107<\/h3>\n<p>Strona otwiera si\u0119 przez https, ale \u0142aduje cz\u0119\u015b\u0107 plik\u00f3w przez http. Wed\u0142ug MDN przegl\u0105darki same zamieniaj\u0105 na https adresy obraz\u00f3w, d\u017awi\u0119k\u00f3w i film\u00f3w, a skrypty, arkusze styl\u00f3w, fonty i ramki \u0142adowane przez http blokuj\u0105. Efektem jest ostrze\u017cenie przy adresie, rozjechany wygl\u0105d albo niedzia\u0142aj\u0105cy element. W WordPressie \u017ar\u00f3d\u0142em s\u0105 zwykle stare adresy wpisane w tre\u015bciach, wid\u017cetach, ustawieniach motywu i stylach page buildera.<\/p>\n<h3>Formularz wysy\u0142a dane na adres http<\/h3>\n<p>Formularz na stronie z k\u0142\u00f3dk\u0105 mo\u017ce mie\u0107 w ustawieniach adres docelowy zaczynaj\u0105cy si\u0119 od http, np. w starym kodzie newslettera. Przegl\u0105darka ostrzega wtedy przed wys\u0142aniem danych, a cz\u0119\u015b\u0107 klient\u00f3w rezygnuje.<\/p>\n<table>\n<thead>\n<tr>\n<th>Objaw<\/th>\n<th>Przyczyna<\/th>\n<th>Co zrobi\u0107<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Napis \u201eNiezabezpieczona\u201d na ca\u0142ej stronie<\/td>\n<td>Strona na http, brak przekierowania<\/td>\n<td>Certyfikat i przekierowanie 301 na https<\/td>\n<\/tr>\n<tr>\n<td>Pe\u0142noekranowe ostrze\u017cenie o po\u0142\u0105czeniu<\/td>\n<td>Wygas\u0142y certyfikat lub dla innej nazwy<\/td>\n<td>Odn\u00f3w certyfikat dla wersji z www i bez www<\/td>\n<\/tr>\n<tr>\n<td>Ostrze\u017cenie tylko na niekt\u00f3rych podstronach<\/td>\n<td>Mieszana tre\u015b\u0107<\/td>\n<td>Popraw adresy http w tre\u015bciach i motywie<\/td>\n<\/tr>\n<tr>\n<td>P\u0119tla przekierowa\u0144 po w\u0142\u0105czeniu https<\/td>\n<td>Konflikt przekierowa\u0144 lub proxy<\/td>\n<td>Jedno przekierowanie, poprawny tryb SSL w proxy<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Jak to naprawi\u0107 na typowym hostingu i w WordPressie?<\/h2>\n<p>Kolejno\u015b\u0107 ma znaczenie: najpierw certyfikat, potem adres strony w WordPressie, potem przekierowanie 301, a na ko\u0144cu poprawki starych adres\u00f3w http w tre\u015bci. Zmiana adresu bez dzia\u0142aj\u0105cego certyfikatu potrafi zablokowa\u0107 dost\u0119p do panelu.<\/p>\n<p>W WordPressie adres zmieniasz w Ustawienia, Og\u00f3lne: pola \u201eAdres WordPressa\u201d i \u201eAdres witryny\u201d musz\u0105 zaczyna\u0107 si\u0119 od https. Przekierowanie najlepiej ustawi\u0107 na serwerze, w pliku <code>.htaccess<\/code> albo w panelu hostingu, tak by ka\u017cdy wariant adresu trafia\u0142 jednym krokiem na docelowy, np. <code>https:\/\/www.domena.pl<\/code>. Stare adresy w bazie zamieniaj narz\u0119dziem, kt\u00f3re obs\u0142uguje dane serializowane, np. poleceniem <code>wp search-replace<\/code> w WP-CLI. Zwyk\u0142a zamiana tekstu w bazie potrafi uszkodzi\u0107 ustawienia wid\u017cet\u00f3w i motywu. Je\u015bli korzystasz z proxy, takiego jak Cloudflare, ustaw tryb szyfrowania Full (strict); tryb Flexible przy przekierowaniu na serwerze ko\u0144czy si\u0119 p\u0119tl\u0105 przekierowa\u0144.<\/p>\n<div class=\"csb-note csb-note--warn\">\n<p>Przed zmianami zr\u00f3b kopi\u0119 zapasow\u0105 plik\u00f3w i bazy danych. Je\u015bli po zmianie adresu stracisz dost\u0119p do panelu, adres mo\u017cesz przywr\u00f3ci\u0107 w pliku <code>wp-config.php<\/code> sta\u0142ymi <code>WP_HOME<\/code> i <code>WP_SITEURL<\/code>.<\/p>\n<\/div>\n<h2>Czy po przej\u015bciu na HTTPS w\u0142\u0105czy\u0107 HSTS?<\/h2>\n<p>Tak, ale dopiero gdy ca\u0142a strona i wszystkie subdomeny dzia\u0142aj\u0105 poprawnie przez HTTPS. Nag\u0142\u00f3wek HSTS ka\u017ce przegl\u0105darce otwiera\u0107 stron\u0119 wy\u0142\u0105cznie przez HTTPS przez zadany czas, wi\u0119c p\u00f3\u017aniejszy b\u0142\u0105d certyfikatu zablokuje wej\u015bcie bez mo\u017cliwo\u015bci omini\u0119cia ostrze\u017cenia.<\/p>\n<p>Zacznij od kr\u00f3tkiego <code>max-age<\/code>, np. jednego dnia, i wyd\u0142u\u017caj go, gdy wszystko dzia\u0142a. Dyrektyw\u0119 <code>includeSubDomains<\/code> dodaj tylko wtedy, gdy ka\u017cda subdomena, tak\u017ce poczta i panele, ma certyfikat. Wpis na list\u0119 preload to decyzja na lata, bo jego wycofanie trwa d\u0142ugo.<\/p>\n<h2>Co sprawdzi\u0107 po przej\u015bciu na HTTPS? Lista kontrolna<\/h2>\n<p>Po zmianach przejd\u017a t\u0119 list\u0119, zanim uznasz spraw\u0119 za zamkni\u0119t\u0105.<\/p>\n<ul>\n<li>wszystkie cztery warianty adresu prowadz\u0105 jednym przekierowaniem do jednego adresu https,<\/li>\n<li>certyfikat obejmuje wersj\u0119 z www i bez www, a automatyczne odnawianie jest w\u0142\u0105czone,<\/li>\n<li>konsola przegl\u0105darki nie pokazuje mieszanej tre\u015bci na stronie g\u0142\u00f3wnej, w kontakcie i we wpisach,<\/li>\n<li>formularze, logowanie i p\u0142atno\u015bci dzia\u0142aj\u0105 bez ostrze\u017ce\u0144,<\/li>\n<li>mapa witryny i linki wewn\u0119trzne u\u017cywaj\u0105 adres\u00f3w https,<\/li>\n<li>w Search Console masz w\u0142a\u015bciwo\u015b\u0107 obejmuj\u0105c\u0105 wersj\u0119 https,<\/li>\n<li>kto\u015b dostaje powiadomienie, zanim certyfikat wyga\u015bnie.<\/li>\n<\/ul>\n<p>Certyfikat, przekierowania i aktualizacje to typowe rzeczy, o kt\u00f3rych \u0142atwo zapomnie\u0107 po publikacji strony. Je\u015bli wolisz to zleci\u0107, w ramach <a href=\"https:\/\/codescriptum.pl\/administracja-i-opieka-stron-www-lodz\/\">opieki nad stron\u0105 WWW<\/a> zajmujemy si\u0119 aktualizacjami, kopiami zapasowymi, monitoringiem i pomoc\u0105 przy awariach.<\/p>\n<p>Ten problem jest jednym z naszej listy <a href=\"\/blog\/100-problemow-ze-strona-internetowa\/\">100 problem\u00f3w ze stron\u0105 internetow\u0105 firmy<\/a>, w kt\u00f3rej osobne grupy dotycz\u0105 bezpiecze\u0144stwa oraz domeny i hostingu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Napis \u201eNiezabezpieczona\u201d oznacza, \u017ce strona otwiera si\u0119 przez zwyk\u0142e HTTP albo \u017ce po\u0142\u0105czenie HTTPS ma b\u0142\u0105d: brak lub wygas\u0142y certyfikat, certyfikat wystawiony dla innego adresu albo elementy strony \u0142adowane przez\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[],"class_list":["post-90121","post","type-post","status-publish","format-standard","hentry","category-strony-internetowe"],"_links":{"self":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/comments?post=90121"}],"version-history":[{"count":0,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/posts\/90121\/revisions"}],"wp:attachment":[{"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/media?parent=90121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/categories?post=90121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codescriptum.pl\/blog\/wp-json\/wp\/v2\/tags?post=90121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}