ARK. D05Parametr monitoringuDostępność · lista 50 parametrów

Przekierowanie HTTP → HTTPS

ważność wysokamierzonysposób redirect

Czy http://domena.pl poprawnie przekierowuje na https://. Brak oznacza, że część użytkowników trafia na wersję nieszyfrowaną.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 10

Przekierowanie HTTP → HTTPS to parametr monitoringu stron internetowych, który sprawdza, czy żądanie wysłane na adres http:// domeny kończy się pod adresem https://. Pomiar podąża za kolejnymi przekierowaniami i ocenia adres końcowy. Możliwe wyniki to: przekierowanie na HTTPS, brak przekierowania (strona odpowiada przez nieszyfrowane HTTP), błąd połączenia albo brak odpowiedzi w wyznaczonym czasie. Rozróżnienie ma znaczenie, bo według RFC 9110 zasoby udostępniane w schemacie https nie mają wspólnej tożsamości ze schematem http i są osobnymi źródłami (ang. origins) [1].

Jak działa

Odpowiedź z klasy 3xx oznacza, że klient musi wykonać dodatkowe działanie, aby zrealizować żądanie [1]. Kody 301, 302, 307 i 308 wskazują, że zasób może być dostępny pod innym adresem, podanym w nagłówku Location [1]. Gdy odpowiedź zawiera ten nagłówek, przeglądarka może automatycznie powtórzyć żądanie pod nowym adresem, nawet jeśli nie rozpoznaje konkretnego kodu [1].

Kody różnią się trwałością i traktowaniem metody. Kody 301 i 308 oznaczają, że zasób dostał nowy stały adres i przyszłe odwołania powinny używać nowego [1]. Kody 302 i 307 oznaczają przeniesienie tymczasowe, po którym klient powinien dalej używać adresu pierwotnego [1]. Z przyczyn historycznych przeglądarka może po odpowiedzi 301 lub 302 zamienić metodę POST na GET; kody 307 i 308 dodano właśnie po to, by jednoznacznie zachować metodę [1]. Przy zwykłym otwarciu strony, czyli żądaniu GET, 301 i 308 dają ten sam efekt. Różnica wychodzi przy formularzach i interfejsach API, które wysyłają POST na adres http://.

RYS. 1.1Przekierowanie na HTTPS

Serwer, który otrzymuje żądanie przez niezabezpieczony kanał, powinien według RFC 6797 odpowiedzieć przekierowaniem stałym, np. 301, z adresem https w nagłówku Location [2]. Nagłówka Strict-Transport-Security nie wolno wysyłać w odpowiedzi przez HTTP [2], więc przeglądarka dostaje go dopiero z odpowiedzią po HTTPS i od tej pory sama zamienia adresy http na https, bez przekierowania [3]. Mechanizm opisuje osobny artykuł HSTS.

Poprawny łańcuch kończy się na jednej formie adresu. Google zaleca wybrać jeden z adresów, pod którymi strona jest dostępna, i przekierować ruch z pozostałych na adres preferowany [5].

RYS. 1.2Poprawny łańcuch przekierowań

Standardy i specyfikacje

  • RFC 9110 definiuje klasę 3xx, nagłówek Location oraz znaczenie kodów 301, 302, 307 i 308 [1].
  • RFC 6797 zaleca przekierowanie stałe z HTTP na HTTPS jako „SHOULD”, a nie „MUST”. Powodem są m.in. ryzyka przekierowań po stronie serwera i witryny z komponentami zewnętrznymi, które mogą przy nich działać niepoprawnie [2].
  • Google Search Central: przy przekierowaniu stałym (301, 308) proces indeksowania używa go jako sygnału, że cel powinien być adresem kanonicznym, a przy tymczasowym (302, 307) nie [5]. Gdy adres strony w wynikach ma się zmienić, Google zaleca stałe przekierowanie po stronie serwera [5]. Przekierowanie jest silnym sygnałem kanoniczności [6], a Google preferuje stronę HTTPS przed jej odpowiednikiem HTTP [6].
  • Lighthouse w audycie przekierowania zmienia adres strony na HTTP, wczytuje ją i czeka na zdarzenie oznaczające bezpieczną stronę. Brak zdarzenia w ciągu 10 sekund oznacza niezaliczony audyt [7]. Jako naprawę dokumentacja podaje przekierowanie na serwerze i link kanoniczny w nagłówku dokumentu HTML [7].

Zagrożenia i skutki

Pierwsze żądanie bez szyfrowania. Przekierowanie nie chroni samego pierwszego żądania. Gdy użytkownik wpisuje adres http:// albo otwiera taki link, a przeglądarka nie zna jeszcze polityki HSTS hosta, pierwsza wymiana idzie niezabezpieczonym kanałem i jest podatna na ataki [2]. MDN wskazuje tę samą słabość HSTS i podaje listę preload jako sposób jej ograniczenia [3]. Znanym przykładem jest atak SSL stripping, dla którego Moxie Marlinspike opublikował narzędzie typu man-in-the-middle o nazwie sslstrip [4].

Brak przekierowania. Strona dostępna jednocześnie pod http:// i https:// ma dwa osobne źródła [1], a wersja HTTP działa bez ochrony transportu. Dokumentacja Lighthouse przyjmuje, że każda witryna powinna być chroniona przez HTTPS [7].

Przekierowanie tymczasowe. Kody 302 i 307 nie wskazują adresu kanonicznego, więc w wynikach wyszukiwania może zostać adres źródłowy [5].

Łańcuch przez HTTP i sprzeczne sygnały. Google nie daje pierwszeństwa stronie HTTPS, gdy ma ona nieważny certyfikat, przekierowuje użytkownika do strony HTTP lub przez nią albo wskazuje wersję HTTP w rel="canonical" [6].

Szyfrowanie kończone na proxy. Gdy TLS kończy się na load balancerze lub reverse proxy, zmienna %{HTTPS} w Apache zawsze ma wartość off, nawet jeśli klient połączył się przez HTTPS [8]. Reguła oparta na tej zmiennej przekierowuje wtedy również żądania, które były już szyfrowane. Dokumentacja zaleca sprawdzanie nagłówka X-Forwarded-Proto, ale tylko wtedy, gdy administrator kontroluje proxy, bo nagłówek da się podrobić [8].

Przykłady

ŚrodowiskoKonfiguracjaUwagi
Apache, host wirtualny portu 80Redirect permanent "/" "https://www.example.com/"podejście zalecane, bez mod_rewrite [8]
Apache, plik .htaccessRewriteCond "%{HTTPS}" !=on i RewriteRule "^(.*)" "https://%{SERVER_NAME}$1" [R=301,L]gdy brak dostępu do głównej konfiguracji; R=301 to przekierowanie stałe [8]
Apache za proxy TLSRewriteCond "%{HTTP:X-Forwarded-Proto}" =http [NC]zamiast %{HTTPS}, które za proxy zawsze jest off [8]
Apache z klientem ACMEwyjątek dla /.well-known/acme-challenge/ przed regułąwalidacja domeny przez zwykłe HTTP [8]
nginxosobny blok server z return 301 i zmienną $request_uridokumentacja nazywa to właściwym sposobem zamiast if z rewrite; jej przykład dotyczy nazwy hosta [9]
WordPressstałe WP_HOME i WP_SITEURL z https:// w wp-config.phpnadpisują wartości home i siteurl z tabeli wp_options, nie zmieniając bazy [10]
TAB. 1.1Przypisy10
  1. [1] RFC 9110 — HTTP Semantics · IETF
  2. [2] RFC 6797 — HTTP Strict Transport Security (HSTS) · IETF
  3. [3] Strict-Transport-Security header · MDN Web Docs
  4. [4] sslstrip — README · Moxie Marlinspike
  5. [5] Redirects and Google Search · Google Search Central
  6. [6] How to specify a canonical URL with rel="canonical" and other methods · Google Search Central
  7. [7] Does not redirect HTTP traffic to HTTPS — Lighthouse · Chrome for Developers
  8. [8] Redirecting and Remapping with mod_rewrite — Apache HTTP Server 2.4 · Apache Software Foundation
  9. [9] Converting rewrite rules · nginx
  10. [10] Editing wp-config.php — Advanced Administration Handbook · WordPress.org
ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per stronaostatni dzień pomiaru 21.09.2026
Stron zmierzonych
204w ostatnim dniu pomiaru
OK
291odczytów
Fail
47odczytów
Nie dało się sprawdzić
6timeout, blokada, limit zapytań
Udział fail
13,9%bez „nie dało się”
TAB. 2.2Od początkuod 17.09.2026
Stron łącznie
206choć jeden odczyt
OK
1690odczytów
Fail
246odczytów
Nie dało się sprawdzić
30timeout, blokada, limit zapytań
Udział fail
12,7%bez „nie dało się”
RYS. 2.130 dnicheck_type: redirect
23.08.202607.09.202621.09.2026
Odczyty parametru Przekierowanie HTTP → HTTPS, 30 dni · wysokość słupka = liczba odczytów dnia, warstwy od dołu: fail, nie dało się sprawdzić, ok · dni bez odczytu: 25 · dni ze stanem „fail”: 17.09.2026, 18.09.2026, 19.09.2026, 20.09.2026, 21.09.2026 · dni ze stanem „nie dało się sprawdzić”: 17.09.2026, 18.09.2026, 19.09.2026, 20.09.2026, 21.09.2026
Odczyty parametru Przekierowanie HTTP → HTTPS, 30 dni
Dzieńfailnie dało się sprawdzićok
23.08.20260 odczytów0 odczytów0 odczytów
24.08.20260 odczytów0 odczytów0 odczytów
25.08.20260 odczytów0 odczytów0 odczytów
26.08.20260 odczytów0 odczytów0 odczytów
27.08.20260 odczytów0 odczytów0 odczytów
28.08.20260 odczytów0 odczytów0 odczytów
29.08.20260 odczytów0 odczytów0 odczytów
30.08.20260 odczytów0 odczytów0 odczytów
31.08.20260 odczytów0 odczytów0 odczytów
01.09.20260 odczytów0 odczytów0 odczytów
02.09.20260 odczytów0 odczytów0 odczytów
03.09.20260 odczytów0 odczytów0 odczytów
04.09.20260 odczytów0 odczytów0 odczytów
05.09.20260 odczytów0 odczytów0 odczytów
06.09.20260 odczytów0 odczytów0 odczytów
07.09.20260 odczytów0 odczytów0 odczytów
08.09.20260 odczytów0 odczytów0 odczytów
09.09.20260 odczytów0 odczytów0 odczytów
10.09.20260 odczytów0 odczytów0 odczytów
11.09.20260 odczytów0 odczytów0 odczytów
12.09.20260 odczytów0 odczytów0 odczytów
13.09.20260 odczytów0 odczytów0 odczytów
14.09.20260 odczytów0 odczytów0 odczytów
15.09.20260 odczytów0 odczytów0 odczytów
16.09.20260 odczytów0 odczytów0 odczytów
17.09.202639 odczytów1 odczyt166 odczytów
18.09.202636 odczytów4 odczyty166 odczytów
19.09.202685 odczytów13 odczytów532 odczyty
20.09.202639 odczytów6 odczytów535 odczytów
21.09.202647 odczytów6 odczytów291 odczytów
TAB. 2.3Ustaleniaod 13.07.2026
Otwarte teraz
52stron: 52 · w okresie łaski: 9
Nowe w ostatnim dniu
921.09.2026
Otwarte od początku
184stron: 107
Zamknięte
123od początku
Mediana trwania
6 h 0 minod wykrycia do zamknięcia
UstalenieSkutekOtwarte terazŁącznieZamknięte
Przekierowanie HTTP → HTTPS redirectWARNING52184123
RYS. 2.2Nowe ustalenia, 30 dni
23.08.202607.09.202621.09.2026
Nowe ustalenia parametru Przekierowanie HTTP → HTTPS, 30 dni · wysokość słupka = liczba ustaleń dnia, warstwy od dołu: nowe ustalenia · dni bez odczytu: 11
Nowe ustalenia parametru Przekierowanie HTTP → HTTPS, 30 dni
Dzieńnowe ustalenia
23.08.20264 ustalenia
24.08.20260 ustaleń
25.08.20265 ustaleń
26.08.20262 ustalenia
27.08.20262 ustalenia
28.08.20261 ustalenie
29.08.20261 ustalenie
30.08.20263 ustalenia
31.08.20263 ustalenia
01.09.20262 ustalenia
02.09.20261 ustalenie
03.09.20260 ustaleń
04.09.20260 ustaleń
05.09.20260 ustaleń
06.09.202619 ustaleń
07.09.20261 ustalenie
08.09.20261 ustalenie
09.09.202613 ustaleń
10.09.20260 ustaleń
11.09.20260 ustaleń
12.09.20260 ustaleń
13.09.20260 ustaleń
14.09.20260 ustaleń
15.09.20260 ustaleń
16.09.20260 ustaleń
17.09.202620 ustaleń
18.09.20262 ustalenia
19.09.202615 ustaleń
20.09.20261 ustalenie
21.09.20269 ustaleń
TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
60sposób redirect
W 30 dni
60przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
20461 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 16.09.2026
RYS. 3.1Droga parametru przez system: Przekierowanie HTTP → HTTPS
TAB. 3.1Pomiarpliki: 6
Obszar i ważnośćDostępność · wysoka (D05)
Workflow i częstotliwośćcreato_ping_avail_v2 działa na LAB247cron co 24 h, osobno T1–T4 · Strony w stanie DOWN i WARNING dostają dodatkowy odczyt co 6 h (timer availability_recheck poza n8n). Od 2026-09-16 sposób ssl daje odczyt ssl_expiry (dni do wygaśnięcia certyfikatu); od 2026-09-17 odczyty trafiają do check_results.
Sonda i helpersposób redirect · CREATO_PING/helpers/redirect_check.py
Testy
  1. GET http://domena (bez ścieżki) z UA monitora, z podążaniem za przekierowaniami HTTP, do 5 przekierowań.
  2. Adres końcowy zaczyna się od https:// = ok. Kod odpowiedzi końcowej i host adresu końcowego nie są sprawdzane.
  3. Adres końcowy na http:// = fail; gdy ostatnia odpowiedź ma kod 403, 406, 415, 429 albo 451, druga próba z UA przeglądarki.
  4. Więcej niż 5 przekierowań = fail z opisem „pętla przekierowań”; błąd sieci, także odrzucone połączenie na porcie 80 = fail; brak odpowiedzi w 7 s = timeout.
  5. Skan dostępności raz na dobę (do 50 stron równolegle) i odczyt co 6 h stron DOWN/WARNING.
Typ wynikuenum: ok / fail / timeout + adres końcowy, liczba przeskoków, znacznik długiego łańcucha, flaga ua_fallback
Jednostkabrak — wynik jakościowy (schemat adresu końcowego)
Próg i regułaTimeout 7,0 s, limit 5 przekierowań — stałe w helperze, poza config.py. Reguła: adres końcowy zaczyna się od https://.
Gdzie leżą pokrętłaCREATO_PING/helpers/redirect_check.py → _TIMEOUT, _MAX_REDIRECTSCREATO_PING/helpers/common.py → BLOCK_LIKE_STATUSESCREATO_PING/helpers/site_params.py → CRITICAL_CHECK_TYPES (redirect poza listą)
Retencja odczytówKażdy odczyt w tabeli check_results bazy LAB247; kod LAB247 tej tabeli nie czyści. Polityki retencji nikt jeszcze nie ustalił.
Znane rozbieżności
  1. Kod odpowiedzi końcowej nie jest oceniany: https:// z 404 albo 500 daje ok.
  2. Host adresu końcowego nie jest porównywany z domeną: przekierowanie na cudzą domenę po https (parking, przejęcie, spam) daje ok.
  3. Pośrednie przeskoki nie są badane: łańcuch przechodzący przez http:// i kończący się na https:// daje ok, choć Google odbiera wtedy stronie HTTPS pierwszeństwo jako kanonicznej.
  4. Przekierowania meta refresh i JavaScript nie są wykonywane — dają fail „brak przekierowania”.
  5. „Pętla” to każde przekroczenie 5 przekierowań; prawdziwego cyklu kod nie wykrywa.
  6. Odrzucone połączenie na porcie 80 daje fail nieodróżnialny od braku reguły przekierowania i dubluje sygnał parametrów TCP i kod HTTP.
  7. Helper nie zwraca czasu, a adres końcowy, liczba przeskoków i flagi nie docierają do zapisu — przekazanie niesie tylko status i błąd.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_PING/helpers/redirect_check.py · CREATO_PING/helpers/common.py · CREATO_PING/helpers/site_params.py · CREATO_PING/helpers/availability_recheck.py · CREATO_PING/tools/avail_writer_input.py · LAB247/site/src/lib/ingest/apply.ts · odczyt 16.09.2026
TAB. 3.2Co oznacza failtypów ustaleń: 1

1. fail albo timeout = okres łaski (IN PROGRESS, bez alertu). 2. fail z rzędu = ustalenie otwarte z etykietą WARNING — redirect nie jest sprawdzeniem krytycznym i nie daje DOWN. Pierwszy odczyt ok zamyka ustalenie.

UstaleniePowagaPewnośćSkutekSubtask / alarmCo zrobić
Przekierowanie HTTP → HTTPSredirectWysokieEwidentneWARNINGtak / niePopraw reguły przekierowań w .htaccess lub w panelu hostingu.
ARK. 4

LOOP

pętli: 1
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.

TAB. 4.2Pętle1 · zmian: 1 · wpływających na cały system: 1
WAF blokujący UA monitora to nie awariazamknięta historyczna 2026-07-19

Sygnał: Strony za WAF-em albo wtyczką bezpieczeństwa zwracały sondzie 403/429, a działały dla ludzi — fałszywe DOWN. · dotyczy też: Kod odpowiedzi HTTP, Weryfikacja treści

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieczłowiek potwierdził, że strona działa w przeglądarce
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionedruga próba z UA przeglądarki
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-07-19Przy kodzie 403, 406, 415, 429 albo 451 sprawdzenie ponawia żądanie z UA przeglądarki; 2xx/3xx za drugim razem = ok (w przekierowaniu: adres końcowy na https).helpers/common.py · helpers/http_check.py · helpers/content_check.py · helpers/redirect_check.pyBlokada robotów na poziomie aplikacji nie jest niedostępnością strony.cały system Ta sama reguła obowiązuje w weryfikacji treści — oba sprawdzenia czytają BLOCK_LIKE_STATUSES z common.py.343b699bez replayubez zapisu zatwierdzenia
Blog 24/7
20.09Zastrzeżony PESEL: zmiana raz na 30 minut, blokada przy wypłaciedobreprogramy.pl20.09Fałszywe SMS-y od GITD o mandacie za autostradę wyłudzają dane kartyinstalki.pl20.09Pakiet npm indexed-btree omija blokadę skryptów instalacyjnychbleepingcomputer.com19.09SolarWinds łata CVE-2026-28326 w Access Rights Manager, zdalny kod bez logowaniathehackernews.com19.09Orkes Conductor: luka CVE-2026-58138 atakowana w sieci, poprawka w wersji 3.30.2thehackernews.com19.09Trzy luki jądra Linux w katalogu CISA KEV, Red Hat potwierdza aktywne atakithehackernews.com18.09Publiczne exploity na cztery luki jądra Linux dają lokalnie uprawnienia rootthehackernews.com18.09Brevo: skradziony klucz API Cloudflare i skrypty ClickFix na stronach klientówbleepingcomputer.com18.09WaterPlum z Korei Północnej zainfekowała 30 000 urządzeń w 100 krajachtherecord.media18.09Jedna zgoda OAuth daje napastnikowi dostęp do poczty i plików mimo MFAdarkreading.com