SSL: ważność certyfikatu
ważność krytycznamierzonysposób partial_availability
Czy certyfikat TLS jest ważny, nie wygasł, pasuje do domeny i łańcuch jest kompletny. Nieważny certyfikat to pełnoekranowe ostrzeżenie w przeglądarce.
Sprawdzany przy dostępności: nieważny certyfikat na obu formach adresu zatrzymuje odwiedzających, na jednej — daje częściową dostępność. Harmonogram nie wypisuje jeszcze tego sposobu w przebiegu.
WIKI
artykuł z 16.09.2026 · źródeł 10Ważność certyfikatu SSL to parametr monitoringu stron internetowych, który sprawdza, czy certyfikat przedstawiany przez serwer w uzgadnianiu TLS przejdzie weryfikację klienta: czy nie wygasł, czy jest wystawiony dla odwiedzanej nazwy domeny i czy da się z niego zbudować ścieżkę zaufania do urzędu certyfikacji. Wynikiem jest certyfikat poprawny, certyfikat nieważny albo brak wyniku, gdy uzgadnianie się nie odbyło. Certyfikat X.509 wiąże tożsamość z kluczem publicznym, a jego okres ważności to czas od daty notBefore do notAfter włącznie [1].
Jak działa
W TLS 1.3 klient wysyła ClientHello, zwykle z rozszerzeniem server_name wskazującym nazwę serwera, a serwer odpowiada komunikatami ServerHello, Certificate, CertificateVerify i Finished [3]. CertificateVerify to podpis całego uzgadniania kluczem prywatnym odpowiadającym kluczowi publicznemu z certyfikatu [3]. Certyfikat serwera musi stać na pierwszym miejscu listy, a każdy następny powinien poświadczać poprzedni [3]. Gdy weryfikacja zawiedzie, klient może zakończyć połączenie alertem, np. certificate_expired dla wygasłego certyfikatu albo unknown_ca dla nieznanego urzędu [3].
Weryfikacja ścieżki według RFC 5280 przechodzi przez kolejne certyfikaty od kotwicy zaufania: sprawdza podpis kluczem wystawcy, to, czy okres ważności obejmuje bieżący czas, status unieważnienia i zgodność nazwy wystawcy z podmiotem certyfikatu nadrzędnego [1]. Osobnym krokiem jest dopasowanie nazwy: klient porównuje nazwę z adresu z nazwami DNS zapisanymi w rozszerzeniu subjectAltName [2]. Porównanie odbywa się etykieta po etykiecie, bez rozróżniania wielkości liter [2]. Brak dopasowania powinien przerwać połączenie błędem złego certyfikatu [2].
Standardy i specyfikacje
- RFC 5280 definiuje certyfikat X.509, okres ważności, algorytm walidacji ścieżki i rozszerzenie Authority Information Access, którego metoda caIssuers wskazuje, skąd pobrać certyfikat wystawcy i może pomóc zbudować ścieżkę [1]. Certyfikat samopodpisany to taki, w którym wystawca i podmiot są tą samą jednostką, a podpis weryfikuje klucz z tego samego certyfikatu [1].
- RFC 9525 zastąpił RFC 6125. Pole Common Name nie może już służyć do identyfikacji usługi, bo jest tekstem bez typu [2]. Symbol wieloznaczny może stanowić wyłącznie całą skrajnie lewą etykietę i pasuje tylko do jednej etykiety [2].
- Baseline Requirements CA/Browser Forum (wersja 2.3.0) skracają maksymalny okres ważności certyfikatów publicznych: 398 dni dla wystawionych przed 15 marca 2026, 200 dni od tej daty, 100 dni od 15 marca 2027 i 47 dni od 15 marca 2029 [4].
- RFC 8555 (ACME) automatyzuje weryfikację kontroli nad domeną i wystawianie certyfikatów; klient ACME okresowo pobiera od urzędu nowe certyfikaty [5].
Zagrożenia i skutki
Wygaśnięcie. Chromium zgłasza wtedy błąd CERT_DATE_INVALID (kod -201): certyfikat według zegara klienta jeszcze nie obowiązuje albo wygasł [8]. Przyczyną może być źle skonfigurowany serwer, ale też podstawiony stary certyfikat albo błędny zegar klienta [8]. Let's Encrypt wystawia certyfikaty na 90 dni, żeby ograniczyć szkody po kradzieży klucza i wymusić automatyzację; zalecał odnawianie co 60 dni [6]. Zgodnie z wymogami CA/Browser Forum ten okres skróci się do 45 dni do 2028 roku, a stały 60-dniowy cykl odnowienia przestanie wystarczać [7].
Zła nazwa. Błąd CERT_COMMON_NAME_INVALID (kod -200) oznacza, że certyfikat nie pasuje do nazwy hosta, np. przez atak z przekierowaniem ruchu albo serwer podający niewłaściwy certyfikat [8]. Z reguł RFC 9525 wynika, że example.com i www.example.com to dwie różne nazwy, a wieloznaczne *.example.com nie obejmuje samej domeny bez prefiksu [2].
Nieznany wystawca. CERT_AUTHORITY_INVALID (kod -202) oznacza podpis urzędu, któremu klient nie ufa; jedną z przyczyn jest certyfikat samopodpisany, który nie chroni przed aktywnym atakującym [8].
Niekompletny łańcuch. RFC 8446 zakłada, że łańcuchy bywają niekompletne, a implementacje mogą uzupełnić brakujące certyfikaty [3]. Robią to różnie. Firefox nie pobiera ich przez AIA, lecz ma wstępnie załadowane certyfikaty pośrednie z bazy CCADB, m.in. dlatego, że pobieranie ujawniałoby urzędowi historię przeglądania [9]. W 2016 roku deweloperzy Chromium odnotowali, że Android nie pobiera certyfikatów pośrednich, a znaczna część błędów certyfikatów wynika z serwerów pomijających te certyfikaty [10]. Ta sama strona może więc działać w jednej przeglądarce i dawać błąd w innej albo w kliencie spoza przeglądarki.
Przykłady
| Sytuacja | Co widzi klient | Typowa przyczyna |
|---|---|---|
| Certyfikat wygasły | CERT_DATE_INVALID, alert certificate_expired [8] [3] | minęła data notAfter [1] |
| Certyfikat na inną nazwę | CERT_COMMON_NAME_INVALID [8] | serwer podaje nie ten certyfikat [8] |
| Działa bez www, błąd z www | brak dopasowania nazwy [2] | certyfikat obejmuje tylko jedną formę adresu [2] |
| Certyfikat samopodpisany | CERT_AUTHORITY_INVALID, alert unknown_ca [8] [3] | wystawca i podmiot to ta sama jednostka [1] |
| Brak certyfikatu pośredniego | błąd zależny od klienta [9] [10] | serwer wysyła sam certyfikat końcowy [3] |
| Certyfikat tylko z Common Name | brak nazwy w subjectAltName [2] | nazwa tylko w polu Common Name [2] |
- [1] RFC 5280 — Internet X.509 Public Key Infrastructure Certificate and CRL Profile · IETF
- [2] RFC 9525 — Service Identity in TLS · IETF
- [3] RFC 8446 — The Transport Layer Security (TLS) Protocol Version 1.3 · IETF
- [4] Baseline Requirements for the Issuance and Management of Publicly-Trusted TLS Server Certificates, v2.3.0 · CA/Browser Forum
- [5] RFC 8555 — Automatic Certificate Management Environment (ACME) · IETF
- [6] Why ninety-day lifetimes for certificates? · Let's Encrypt
- [7] Decreasing Certificate Lifetimes to 45 Days · Let's Encrypt
- [8] net_error_list.h — lista kodów błędów sieciowych Chromium · The Chromium Authors
- [9] Intermediate CA Preloading · Mozilla
- [10] AIA fetching in Chrome for Android — wątek net-dev · Chromium Project
STATS
wyniki z systemu · tylko liczby zbiorcze- Stron zmierzonych
- 245w ostatnim dniu pomiaru
- OK
- 456odczytów
- Fail
- 13odczytów
- Nie dało się sprawdzić
- 18timeout, blokada, limit zapytań
- Udział fail
- 2,8%bez „nie dało się”
- Stron łącznie
- 271choć jeden odczyt
- OK
- 68585odczytów
- Fail
- 1224odczytów
- Nie dało się sprawdzić
- 5816timeout, blokada, limit zapytań
- Udział fail
- 1,8%bez „nie dało się”
| Dzień | fail | nie dało się sprawdzić | ok |
|---|---|---|---|
| 08.10.2026 | 16 odczytów | 183 odczyty | 1537 odczytów |
| 09.10.2026 | 18 odczytów | 186 odczytów | 1532 odczyty |
| 10.10.2026 | 26 odczytów | 277 odczytów | 1437 odczytów |
| 11.10.2026 | 22 odczyty | 48 odczytów | 1636 odczytów |
| 12.10.2026 | 22 odczyty | 48 odczytów | 1637 odczytów |
| 13.10.2026 | 24 odczyty | 87 odczytów | 1595 odczytów |
| 14.10.2026 | 20 odczytów | 152 odczyty | 1553 odczyty |
| 15.10.2026 | 18 odczytów | 175 odczytów | 1543 odczyty |
| 16.10.2026 | 16 odczytów | 170 odczytów | 1550 odczytów |
| 17.10.2026 | 16 odczytów | 170 odczytów | 1550 odczytów |
| 18.10.2026 | 17 odczytów | 207 odczytów | 1514 odczytów |
| 19.10.2026 | 16 odczytów | 170 odczytów | 1550 odczytów |
| 20.10.2026 | 16 odczytów | 179 odczytów | 1542 odczyty |
| 21.10.2026 | 18 odczytów | 88 odczytów | 1621 odczytów |
| 22.10.2026 | 25 odczytów | 57 odczytów | 1628 odczytów |
| 23.10.2026 | 23 odczyty | 52 odczyty | 1632 odczyty |
| 24.10.2026 | 24 odczyty | 100 odczytów | 1585 odczytów |
| 25.10.2026 | 19 odczytów | 132 odczyty | 1574 odczyty |
| 26.10.2026 | 17 odczytów | 174 odczyty | 1546 odczytów |
| 27.10.2026 | 16 odczytów | 179 odczytów | 1542 odczyty |
| 28.10.2026 | 16 odczytów | 184 odczyty | 1536 odczytów |
| 29.10.2026 | 16 odczytów | 175 odczytów | 1549 odczytów |
| 30.10.2026 | 19 odczytów | 178 odczytów | 1635 odczytów |
| 31.10.2026 | 22 odczyty | 178 odczytów | 1635 odczytów |
| 01.11.2026 | 25 odczytów | 119 odczytów | 1672 odczyty |
| 02.11.2026 | 60 odczytów | 106 odczytów | 1704 odczyty |
| 03.11.2026 | 119 odczytów | 187 odczytów | 1615 odczytów |
| 04.11.2026 | 134 odczyty | 212 odczytów | 1714 odczytów |
| 05.11.2026 | 111 odczytów | 325 odczytów | 1558 odczytów |
| 06.11.2026 | 13 odczytów | 18 odczytów | 456 odczytów |
- Otwarte teraz
- 43stron: 43 · w okresie łaski: 3
- Nowe w ostatnim dniu
- 8905.11.2026
- Otwarte od początku
- 555stron: 204
- Zamknięte
- 509od początku
- Mediana trwania
- 11 h 53 minod wykrycia do zamknięcia
| Ustalenie | Skutek | Otwarte teraz | Łącznie | Zamknięte |
|---|---|---|---|---|
| Certyfikat SSL ssl | strona nie odpowiada | 43 | 555 | 509 |
| Dzień | nowe ustalenia |
|---|---|
| 08.10.2026 | 9 ustaleń |
| 09.10.2026 | 9 ustaleń |
| 10.10.2026 | 83 ustalenia |
| 11.10.2026 | 3 ustalenia |
| 12.10.2026 | 1 ustalenie |
| 13.10.2026 | 5 ustaleń |
| 14.10.2026 | 23 ustalenia |
| 15.10.2026 | 7 ustaleń |
| 16.10.2026 | 4 ustalenia |
| 17.10.2026 | 4 ustalenia |
| 18.10.2026 | 12 ustaleń |
| 19.10.2026 | 7 ustaleń |
| 20.10.2026 | 9 ustaleń |
| 21.10.2026 | 1 ustalenie |
| 22.10.2026 | 5 ustaleń |
| 23.10.2026 | 2 ustalenia |
| 24.10.2026 | 13 ustaleń |
| 25.10.2026 | 22 ustalenia |
| 26.10.2026 | 9 ustaleń |
| 27.10.2026 | 6 ustaleń |
| 28.10.2026 | 4 ustalenia |
| 29.10.2026 | 5 ustaleń |
| 30.10.2026 | 4 ustalenia |
| 31.10.2026 | 10 ustaleń |
| 01.11.2026 | 2 ustalenia |
| 02.11.2026 | 11 ustaleń |
| 03.11.2026 | 1 ustalenie |
| 04.11.2026 | 9 ustaleń |
| 05.11.2026 | 89 ustaleń |
| 06.11.2026 | 0 ustaleń |
- Przebiegów
- 16sposób partial_availability
- W 30 dni
- 0przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- 1050suma z przebiegów
CARD
karta z kodu CREATO_PING, odczyt 22.09.2026Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.
| Obszar i ważność | Bezpieczeństwo · krytyczna (B01) |
|---|---|
| Workflow i częstotliwość | creato_ping_avail_v2 działa na LAB247Skaner 2.0, rytm „dostepnosc”: premium co 15 min, reszta co 3–12 h · Dawny workflow n8n avail_v2; od 20.09 te same sondy w rytmie kohort skanera. Sposób ssl daje odczyt ssl_expiry (dni do wygaśnięcia certyfikatu); odczyty trafiają do check_results. |
| Sonda i helper | sposób partial_availability · CREATO_PING/helpers/partial_availability_check.py |
| Testy |
|
| Typ wyniku | dwa odczyty: formy adresu (ok / fail / cert_invalid) i certyfikat formy głównej (ok / fail / cert_invalid / timeout, z datą wygaśnięcia, wystawcą i SAN) |
| Jednostka | brak — wynik jakościowy |
| Próg i reguła | Reguła, nie próg: certyfikat wygasł albo nazwa domeny nie jest w SAN = cert_invalid. Timeout formy adresu 15 s z jednym ponowieniem, uzgadnianie TLS 4,0 s. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/partial_availability_check.py → _TIMEOUT, _MAX_REDIRECTS, _is_subdomain (Public Suffix List w config/public_suffix_list.dat)CREATO_PING/helpers/config.py → TIMEOUTS["ssl"]CREATO_PING/helpers/site_params.py → CRITICAL_CHECK_TYPESCREATO_PING/tools/avail_writer_input.py → _ssl_records |
| Retencja odczytów | Surowy pomiar jako NIEZMIENNY wiersz tabeli `odczyty` w bazie skanera (wejście, wyjście, dowody, sha karty sondy i helpera, commit kodu) — trigger odrzuca każdą zmianę. Okno retencji z kohorty: 90 dni premium, 30 dni reszta; poza oknem zostają odczyty z werdyktem problemu, akcją albo etykietą, bo replay reguł ich potrzebuje (`skaner/retencja.py`). Spłaszczony wynik jedzie dodatkowo do tabeli `check_results` bazy LAB247 (skrzynka `state/checks_outbox` → timer co 10 min); tej tabeli kod LAB247 nie czyści. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/partial_availability_check.py · CREATO_PING/helpers/ssl_check.py · CREATO_PING/helpers/config.py · CREATO_PING/helpers/site_params.py · CREATO_PING/skaner/adapter_clickup.py · CREATO_PING/skaner/sprawy.py · CREATO_PING/tools/avail_writer_input.py · CREATO_PING/helpers/availability_recheck.py · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 22.09.2026 |
ssl: bramka polityki otwarta (gate=true) → sprawa w skanerze → Certyfikat nieważny — przeglądarka blokuje wejście — waga 4 → ocena 7–8 (pomarańczowy), status strony „wysoki”, dopóki sprawa jest otwarta. partial_availability: bramka polityki otwarta (gate=true) → sprawa w skanerze → Jedna forma adresu (www / bez www) zepsuta — waga 3 → ocena 5–6 (żółty), status strony „sredni”, dopóki sprawa jest otwarta. Okres łaski: 1. porażka zakłada sprawę ze statusem IN PROGRESS, której wskaźnik NIE liczy (`ocena.py` pomija sprawy niepotwierdzone), 2. porażka z rzędu potwierdza sprawę i dopiero wtedy usterka wchodzi do oceny. Pierwszy odczyt ok zamyka sprawę. ssl jest sprawdzeniem krytycznym. Nieważny certyfikat i zerwane uzgadnianie idą tą samą drogą; zepsuta jedna forma adresu to `partial_availability` o wadze niższej.
| Kod | Finding | Severity | Pewność | Skutek | Finding / alarm | Waga → ocena | Co zrobić |
|---|---|---|---|---|---|---|---|
| B01.01 | Certyfikat SSLssl | Wysoka | Ewidentne | strona nie odpowiada | tak / tak | waga 4 → ocena 7–8 (pomarańczowy) | Odnów certyfikat, sprawdź automat Let's Encrypt. |
| B01.02 | Certyfikat wystawiony na inną domenęssl_hostname_mismatch | — | — | — | — / — | waga 4 → ocena 7–8 (pomarańczowy) | — |
Usterki pochodne (z rozłożenia kontenera, nie z osobnego ustalenia): partial_availability — waga 3 → ocena 5–6 (żółty)
| Kod i klucz | B01.01 · ssl · w tabeli typów |
|---|---|
| Co znaczy | Certyfikat wygasa w ciągu kilku dni, jest nieważny lub handshake nie działa. |
| Kiedy powstaje | Check pobiera certyfikat bez weryfikacji. Status cert_invalid, gdy days_to_expiry < 0 (certyfikat wygasł) albo gdy nazwa hosta nie pasuje do SAN/CN (wildcard obejmuje tylko jedną etykietę). Status fail przy błędzie handshake lub parsowania, timeout po 4,5 s. Zwykły fail, gdy days_to_expiry ≤ 3 (SSL_CRITICAL_DAYS), ale avail_writer_input zamienia taki fail na ok, jeśli certyfikat jest ważny i hostname_match nie jest False.Rekord ssl ze statusem cert_invalid jest pomijany, gdy partial_availability też ma cert_invalid (tools/avail_writer_input.py:113). |
| Severity · pewność | Wysoka · Ewidentne |
| Skutek dla strony | strona nie odpowiada · zakłada Finding · alarm tak |
| Waga → ocena | waga 4 → ocena 7–8 (pomarańczowy) |
| Klasyfikacja | CWE: CWE-295 (Improper Certificate Validation)OWASP Top 10:2025: A04:2025 Cryptographic FailuresOWASP ASVS 5.0.0: 12.2.2OCSF 1.9.0: Compliance Finding (class_uid 2003) |
| Rekord OCSF | finding_info.analytic.uid = "B01.01" · analytic.name = "ssl" · finding_info.types = ["B01 SSL: ważność certyfikatu"] |
| Co zrobić | Odnów certyfikat, sprawdź automat Let's Encrypt. |
| Wersje typu |
|
| Kod i klucz | B01.02 · ssl_hostname_mismatch · w tabeli typów |
|---|---|
| Co znaczy | opis do opracowania |
| Kiedy powstaje | nie emitowany: tylko wpis w katalogu. Niezgodność nazwy hosta trafia do typu ssl jako status cert_invalid.Dotyczy też site/src/data/usterki.ts:85; kod Checku: ssl_check.py:198. |
| Severity · pewność | — |
| Skutek dla strony | — · brak w polityce |
| Waga → ocena | waga 4 → ocena 7–8 (pomarańczowy) |
| Klasyfikacja | CWE: CWE-297 (Improper Validation of Certificate with Host Mismatch)OWASP Top 10:2025: A04:2025 Cryptographic FailuresOWASP ASVS 5.0.0: 12.2.2OCSF 1.9.0: Compliance Finding (class_uid 2003) |
| Rekord OCSF | finding_info.analytic.uid = "B01.02" · analytic.name = "ssl_hostname_mismatch" · finding_info.types = ["B01 SSL: ważność certyfikatu"] |
| Co zrobić | — |
| Wersje typu |
|
LOOP
pętli: 6Trafnoś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.
Sygnał: Skan portfolio 121 stron: 11 statusów DOWN to cztery różne problemy; najczęstszy (10 stron) — serwer odpowiada 200, a certyfikat jest nieważny na obu formach adresu.
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręczniewłaściciel: strona stoi, ale przeglądarka blokuje wejście — osobna kategoria
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionewynik cert_invalid i status CERT
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-08-04 | Obie formy padają na weryfikacji certyfikatu, a bez weryfikacji serwer oddaje 200 = wynik cert_invalid i status CERT (priorytet wysoki, termin „teraz”), nad CONFIG i DOWN.helpers/partial_availability_check.py · helpers/site_params.py · helpers/clickup_writer_v2.py | „Nie działa” było mylące, bo serwer stoi; CONFIG byłby za łagodny, bo pełnoekranowe ostrzeżenie realnie odcina ruch. | cały system Nowy status strony w kolejności pierwszeństwa (BLOKADA, potem CERT, CONFIG, DOWN) i nowy wynik w zapisie — bez nadpisania statusu cert_invalid zamykałby ustalenie. | ec26fcdbez replayuzatwierdził: właściciel, 2026-08-04 (osobna kategoria dla złego certyfikatu) |
| 2026-08-04 | Subdomena sprawdzana bez formy www; timeout formy z 10 na 15 s i jedno ponowienie przy timeoucie albo błędzie sieci.helpers/partial_availability_check.py | Subdomeny dostawały fałszywy CONFIG (ich forma www nie istnieje), a wolna strona zdążała odpowiedzieć na jednej formie i nie na drugiej. | tylko ten parametr | ec26fcdbez replayubez zapisu zatwierdzenia |
Sygnał: Status CERT nie istniał na liście statusów w ClickUp (dodano tam „no ssl”), więc pierwsza zmiana statusu skończyłaby się błędem API. Przy przeglądzie wyszła też luka: wygasły certyfikat przy udanym uzgadnianiu dawał zwykły fail, czyli DOWN. · dotyczy też: SSL: dni do wygaśnięcia
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręcznierozjazd nazwy statusu i luka reguły zauważone przy przeglądzie
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionenazwa NO SSL, wygasły = cert_invalid
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-08-13 | Status CERT przemianowany na NO SSL w zapisie i w kolejności statusów strony.helpers/clickup_writer_v2.py · helpers/site_params.py | Zapis musi wysyłać status istniejący na liście; CERT kończył się błędem 400. | cały system Zmienia nazwę statusu wszystkich stron z nieważnym certyfikatem. | 98ce862bez replayubez zapisu zatwierdzenia |
| 2026-08-13 | Odczyt certyfikatu: data wygaśnięcia już minęła przy udanym uzgadnianiu = cert_invalid (NO SSL) zamiast fail (DOWN).helpers/ssl_check.py · helpers/common.py | Serwer stoi, przeglądarka tylko zatrzymuje odwiedzającego — „nie działa” było mylące. | tylko ten parametr | 98ce862bez replayubez zapisu zatwierdzenia |
Sygnał: Research detekcji: odczyt certyfikatu nie sprawdzał nazwy, więc wieloznaczny certyfikat hostingu na koncie bez własnego certyfikatu przechodził jako poprawny.
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręcznieluka potwierdzona testem na żywej stronie
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionedopasowanie nazwy z SAN
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-09-05 | Odczyt certyfikatu porównuje domenę z nazwami w SAN (wieloznaczny tylko na jedną etykietę); brak dopasowania = cert_invalid (NO SSL).helpers/ssl_check.py | Uzgadnianie celowo idzie bez weryfikacji, żeby odczytać nawet zły certyfikat — zgodność nazwy trzeba liczyć osobno. | tylko ten parametr | b0fc77cbez replayubez zapisu zatwierdzenia |
Sygnał: Przegląd harmonogramu: odczyt certyfikatu chodził tylko w odczycie co 6 h stron DOWN/WARNING, więc zły certyfikat na działającej stronie nie był wykrywany codziennie. · dotyczy też: SSL: dni do wygaśnięcia
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręczniepodgląd na 216 stronach przed włączeniem
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionecertyfikat codziennie, wygasanie osobno
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-09-16 | Odczyt certyfikatu w codziennym skanie dostępności; ważny certyfikat wygasający za ≤ 3 dni = ok, a wygasanie raportuje osobny odczyt ssl_expiry (≤ 14 dni, WARNING). Ta sama reguła w odczycie co 6 h.tools/avail_writer_input.py · helpers/availability_recheck.py · helpers/schedule_publish.py | ssl jest sprawdzeniem krytycznym — fail zrobiłby DOWN z działającej strony. | cały system Nowy odczyt ssl_expiry — parametr SSL: dni do wygaśnięcia zaczyna być mierzony. | cf89ebebez replayubez zapisu zatwierdzenia |
| 2026-09-16 | Gdy odczyt form adresu dał cert_invalid, odczyt certyfikatu z cert_invalid nie trafia do zapisu.tools/avail_writer_input.py | Jeden problem, jedno ustalenie. | tylko ten parametr | cf89ebebez replayubez zapisu zatwierdzenia |
Sygnał: Strona wisiała na DOWN, choć działała: hosting klienta zbanował IP serwera monitoringu (SYN porzucany, nie odrzucany) po serii automatycznych odpytań. · dotyczy też: Połączenie TCP, Kod odpowiedzi HTTP
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręczniedostępność potwierdzona z innych lokalizacji
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionezewnętrzny cross-check i nowy status strony
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-07-19 | Timeout TCP/HTTP z naszego serwera sprawdzany z zewnątrz; odpowiedź z innych lokalizacji = status BLOKADA zamiast DOWN.helpers/network_block_check.py · helpers/site_params.py | Blokada sieciowa monitoringu to inny mechanizm niż blokada UA — działa poniżej HTTP. | cały system Nowy status strony w kolejności pierwszeństwa, nad DOWN — zmienia status każdej strony, nie tylko tego parametru. | 8c0c0c6bez replayubez zapisu zatwierdzenia |
Sygnał: Adres bez www odpowiadał 200, a forma z www miała certyfikat samopodpisany — silnik eskalował to do DOWN. · dotyczy też: Połączenie TCP, Rozwiązywanie DNS, Kod odpowiedzi HTTP, Przekierowanie www ↔ bez www
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręcznieużytkownicy widzą sprawną stronę, więc alarm był fałszywy
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionesprawdzenie częściowej dostępności i status CONFIG
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-08-04 | Częściowa dostępność (jedna forma 200, druga zepsuta) daje status CONFIG, który bije DOWN.helpers/site_params.py · helpers/partial_availability_check.py | Błąd konfiguracji do naprawy to nie awaria; realny DOWN zostaje, gdy nie odpowiada żadna forma. | cały system Nowy status strony nad DOWN; dotyczy wszystkich sprawdzeń krytycznych (tcp, dns, http, ssl). | 091e318bez replayubez zapisu zatwierdzenia |