Łańcuch certyfikatów SSL: kolejność, sprawdzanie i naprawa

Kluczowy wniosek

Łańcuch certyfikatów SSL to lista certyfikatów łącząca certyfikat strony z głównym urzędem certyfikacji, któremu Twoja przeglądarka już ufa: własny certyfikat strony (leaf), jeden lub kilka certyfikatów pośrednich i certyfikat główny z listy przeglądarki. Serwer musi wysłać certyfikat leaf i pośrednie, leaf na początku; z 12 dużych serwisów, które sprawdziliśmy, każdy wysłał od 2 do 4 certyfikatów. Jeśli brakuje certyfikatu pośredniego, aplikacje i klienci API kończą się błędami w rodzaju "unable to get local issuer certificate" lub "unable to verify the first certificate", nawet gdy Chrome nadal ładuje stronę.

Sprawdź teraz

Diagram łańcucha certyfikatów SSL pokazujący certyfikaty główny, pośredni i leaf połączone w łańcuch zaufania
Diagram łańcucha certyfikatów SSL pokazujący certyfikaty główny, pośredni i leaf połączone w łańcuch zaufania
Zacznij czytać
  1. Czym jest łańcuch certyfikatów SSL?
  2. Trzy rodzaje certyfikatów w łańcuchu
  3. Jak działa łańcuch zaufania
  4. Prawdziwe łańcuchy: co wysyła 12 dużych serwisów
  5. Dlaczego certyfikaty pośrednie istnieją
  6. Jak sprawdzić łańcuch certyfikatów SSL
  7. Typowe błędy łańcucha certyfikatów i jak je naprawić
  8. Najlepsze praktyki łańcucha certyfikatów
  9. Często zadawane pytania

Czym jest łańcuch certyfikatów SSL?

Łańcuch certyfikatów SSL (nazywany też łańcuchem zaufania lub ścieżką certyfikacji) to uporządkowana lista certyfikatów cyfrowych, która łączy certyfikat SSL/TLS Twojej strony z zaufanym głównym urzędem certyfikacji (CA). Każdy certyfikat w łańcuchu jest podpisany cyfrowo przez ten powyżej, co tworzy weryfikowalną ścieżkę zaufania od Twojego serwera aż do głównego CA, któremu przeglądarki już ufają.

Wyobraź sobie to jako łańcuch poręczeń. Certyfikat Twojego serwera mówi: "Jestem example.com". Pośredni CA mówi: "Poręczam za certyfikat example.com". Główny CA mówi: "Poręczam za ten pośredni". Twoja przeglądarka już ufa głównemu CA, więc idąc po łańcuchu podpisów, ufa także Twojemu serwerowi.

Gdy wchodzisz na stronę HTTPS, przeglądarka sprawdza ten łańcuch w ciągu milisekund. Jeśli każde ogniwo jest w porządku, strona ładuje się bez ostrzeżenia. Jeśli ogniwa brakuje, wygasło lub nie jest zaufane, zamiast strony zobaczysz ostrzeżenie bezpieczeństwa, na przykład NET::ERR_CERT_AUTHORITY_INVALID.

Zobacz łańcuch certyfikatów strony

Każdy łańcuch ma trzy rodzaje certyfikatów, choć serwer może wysłać więcej niż jeden pośredni:

Certyfikat głównyCertyfikat pośredniCertyfikat leaf (serwera)
Podpisany przezSamego siebie (samopodpisany)Główny (lub inny pośredni)Pośredni
Gdzie się znajdujeNa liście certyfikatów głównych przeglądarki lub systemuWysyła go Twój serwerWysyła go Twój serwer
Typowy okres ważnościCertyfikaty działają 20–25 lat, ale przeglądarki ufają certyfikatowi głównemu przez około 15 (ISRG Root X1: od 2015 do 2030)Kilka lat (YE1 Let's Encrypt: do 2028)Najwyżej 200 dni dla certyfikatów wydanych od marca 2026 (Let's Encrypt: 90)
Gdy klucz wycieknieZagrożony jest każdy certyfikat pod nimUnieważnia się ten certyfikat pośredniUnieważnia się i wydaje na nowo
Ile ich jestOkoło 100 na liście certyfikatów głównych ChromeTysiąceSetki milionów

Certyfikat główny

Certyfikat główny to punkt zaufania na szczycie łańcucha. Jest samopodpisany, czyli urząd certyfikacji podpisał własny certyfikat. Certyfikaty główne są zainstalowane z góry w przeglądarce i systemie operacyjnym — ten zbiór nazywa się magazynem zaufania.

Własna lista Chrome zawiera około 100 certyfikatów głównych (Chrome Root Store); Mozilla, Apple i Microsoft prowadzą własne listy. Certyfikaty główne utrzymują organizacje takie jak DigiCert, Let's Encrypt (ISRG), Sectigo, GlobalSign i Google Trust Services. Ponieważ klucze główne są bardzo cenne, urzędy certyfikacji trzymają je offline w sprzętowych modułach bezpieczeństwa i używają ich wyłącznie do podpisywania certyfikatów pośrednich.

Certyfikat pośredni

Certyfikaty pośrednie leżą między certyfikatem głównym a certyfikatem Twojego serwera. Główny CA podpisuje certyfikat pośredni, a pośredni CA podpisuje następnie certyfikaty końcowe (serwerowe). Większość urzędów używa jednego lub dwóch certyfikatów pośrednich.

Twój serwer WWW musi wysyłać certyfikaty pośrednie razem z certyfikatem leaf podczas handshake TLS. Chrome potrafi pobrać brakujący certyfikat pośredni, a Firefox ma je wczytane z góry, ale aplikacje, klienci API i starsze urządzenia z Androidem nie mają żadnej z tych możliwości, więc dla nich łańcuch się zrywa.

Certyfikat leaf (certyfikat serwera)

Certyfikat leaf (nazywany także certyfikatem końcowym lub certyfikatem serwera) to certyfikat zainstalowany na serwerze. Zawiera nazwę domeny, klucz publiczny, okres ważności oraz informacje o wydawcy (pośrednim CA, który go podpisał).

To pierwszy certyfikat, który przeglądarka otrzymuje podczas handshake TLS. Następnie przeglądarka podąża w górę łańcucha, weryfikując każdy podpis aż do dotarcia do zaufanego certyfikatu głównego.

Jak działa łańcuch zaufania

Gdy przeglądarka łączy się ze stroną przez HTTPS, handshake TLS uruchamia proces weryfikacji łańcucha, który odbywa się w milisekundach:

  • Serwer wysyła swoje certyfikaty — najpierw leaf, potem pośrednie.
  • Przeglądarka buduje ścieżkę — od leaf w górę do certyfikatu głównego z własnej listy. Jeśli brakuje certyfikatu pośredniego, Chrome pobiera go z adresu zapisanego w certyfikacie (AIA), a Firefox używa własnego, wczytanego z góry zestawu; wielu innych klientów po prostu kończy się błędem.
  • Sprawdzane są podpisy — każdy certyfikat musi być podpisany kluczem tego powyżej.
  • Sprawdzany jest certyfikat główny — ścieżka musi kończyć się certyfikatem głównym z listy przeglądarki. Nieznany certyfikat główny nie przechodzi weryfikacji.
  • Sprawdzana jest ważność — każdy certyfikat musi mieścić się w swoich datach i nie może być unieważniony, a leaf musi obejmować nazwę z paska adresu.

Prawdziwe łańcuchy: co wysyła 12 dużych serwisów

27 października 2026 roku poprosiliśmy 12 największych serwisów o ich łańcuchy (openssl s_client -showcerts, z dwóch lokalizacji). Żaden nie wysłał samego leaf, a kilka dodało certyfikaty podpisane krzyżowo, aby starsze urządzenia mogły mimo wszystko dotrzeć do znanego im certyfikatu głównego. To, co wysyła serwer, może się zmieniać zależnie od wersji TLS, obsługi ECDSA przez klienta i tego, która lokalizacja CDN odpowiada: na przykład facebook.com wysłał przez TLS 1.2 3 certyfikaty.

SerwisWysłane certyfikatySzczyt wysyłanego łańcucha
facebook.com, reddit.com, netflix.com2Certyfikat pośredni DigiCert (certyfikat główny pochodzi z Twojego urządzenia)
google.com, youtube.com, cloudflare.com3GTS Root R4, podpisany krzyżowo przez GlobalSign dla starszych urządzeń
amazon.com3DigiCert Global Root G2, podpisany krzyżowo przez stary certyfikat główny VeriSign
apple.com3Sam DigiCert Global Root G3 (samopodpisany certyfikat główny)
github.com3Certyfikat główny Sectigo, podpisany krzyżowo przez USERTrust
microsoft.com4Microsoft TLS RSA Root G2, podpisany krzyżowo przez DigiCert Global Root G2, plus ten certyfikat główny DigiCert
wikipedia.org, letsencrypt.org4ISRG Root X2, podpisany krzyżowo przez ISRG Root X1

Co dzieje się po weryfikacji

Jeśli wszystkie kontrole przejdą, połączenie jest nawiązywane. Jeśli którakolwiek zawiedzie, nawet dla certyfikatu pośredniego, przeglądarka pokazuje ostrzeżenie w rodzaju "Połączenie nie jest prywatne" z kodem takim jak NET::ERR_CERT_AUTHORITY_INVALID. (Błędy, które pojawiają się, zanim w ogóle zajrzy się do certyfikatów, czyli w samym handshake TLS, pokazują inne kody: ERR_SSL_PROTOCOL_ERROR lub ERR_SSL_VERSION_OR_CIPHER_MISMATCH.)

Dlatego liczy się cały łańcuch, a nie tylko certyfikat leaf. Wygasły certyfikat pośredni psuje HTTPS tak samo jak wygasły certyfikat serwera, chyba że klient potrafi zbudować inną ścieżkę z pominięciem go.

Dlaczego certyfikaty pośrednie istnieją

Główne CA mogłyby teoretycznie podpisywać każdy certyfikat serwera bezpośrednio, pomijając certyfikaty pośrednie. Istnieją jednak trzy ważne powody, dla których tego nie robią:

  • Izolacja bezpieczeństwa — Klucze prywatne głównego CA są przechowywane offline w HSM wewnątrz fizycznie zabezpieczonych sejfów. Służą tylko do podpisywania certyfikatów pośrednich, a nie milionów pojedynczych certyfikatów serwerów. To drastycznie zmniejsza ryzyko kompromitacji klucza głównego.
  • Ograniczenie szkód — Jeśli pośredni CA zostanie skompromitowany, ucierpią tylko certyfikaty wydane przez ten certyfikat pośredni. Główny CA może unieważnić skompromitowany certyfikat pośredni i wydać nowy — bez unieważniania wszystkich certyfikatów, jakie kiedykolwiek wystawił.
  • Elastyczność operacyjna — Urzędy certyfikacji używają różnych certyfikatów pośrednich do różnych celów: jednego dla certyfikatów DV, innego dla EV, osobnych dla różnych regionów lub algorytmów kluczy (RSA i ECDSA).

Jak sprawdzić łańcuch certyfikatów SSL

Istnieją trzy sposoby inspekcji łańcucha certyfikatów strony, od narzędzi wiersza poleceń po sprawdzenia w przeglądarce.

Metoda 1: OpenSSL (Wiersz poleceń)

Polecenie openssl to najbardziej szczegółowy sposób inspekcji łańcucha certyfikatów. Uruchom to w terminalu:

bash
# List each certificate the server sends (s: subject, i: issuer)
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null | grep -E ' [si]:'

# Then read the verdict
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | grep -m1 'Verify return code'

Metoda 2: podgląd certyfikatu w przeglądarce

Każda duża przeglądarka pokazuje zbudowany przez siebie łańcuch (może się on różnić od wysłanego przez serwer, jeśli przeglądarka sama pobrała brakujący certyfikat pośredni):

  • Chrome: kliknij ikonę po lewej stronie adresu → Połączenie jest bezpieczne → Certyfikat jest ważny, a potem otwórz kartę Szczegóły, aby zobaczyć hierarchię certyfikatów
  • Edge: kliknij kłódkę → "Connection is secure" → ikona certyfikatu u góry panelu
  • Firefox: kliknij kłódkę → "Connection secure" → "More information" → "View Certificate"; każdy certyfikat w łańcuchu ma własną kartę
  • Safari (18.4 i nowsze): wybierz w pasku menu Safari > Szczegóły zabezpieczeń połączenia (Apple); na iPhonie dotknij lewej strony pola adresu → "Privacy & Security" → "Connection Security Details"

Metoda 3: sprawdzanie SSL w DNS Robot

Najszybsze sprawdzenie spoza Twojej sieci to nasze Sprawdzanie SSL: pokazuje łańcuch wysyłany przez serwer, to, czy ufają mu listy certyfikatów głównych Mozilli, Chrome, Apple i Microsoftu, ostrzeżenie o niepełnym łańcuchu i daty każdego certyfikatu. Dla stron za Cloudflare odczytuje certyfikat z publicznych logów CT, więc tam łańcuch wysyłany przez serwer nie jest sprawdzany.

Typowe błędy łańcucha certyfikatów i jak je naprawić

Problemy z łańcuchem certyfikatów są jedną z najczęstszych przyczyn błędów HTTPS. Oto błędy, które najprawdopodobniej napotkasz, i jak rozwiązać każdy z nich.

Brakujący certyfikat pośredni

Komunikat o błędzie: "unable to get local issuer certificate" (curl, Python, PHP), "unable to verify the first certificate" (Node.js) lub "incomplete certificate chain"

Przyczyna: serwer wysyła tylko certyfikat leaf. Chrome często naprawia to, pobierając certyfikat pośredni samodzielnie (podobnie weryfikator Apple), więc strona może w przeglądarce wyglądać dobrze, podczas gdy curl w Linuksie, Python, Java, wywołania zwrotne płatności i wiele aplikacji zawodzą.

Rozwiązanie: wysyłaj certyfikaty pośrednie razem z leaf. Przy Let's Encrypt wskaż serwerowi fullchain.pem, a nie cert.pem; przy innym urzędzie pobierz jego certyfikat pośredni i umieść go po swoim certyfikacie w jednym pliku:

bash
cat your-domain.crt intermediate.crt > fullchain.crt

Samopodpisany certyfikat w łańcuchu

Komunikat o błędzie: "self-signed certificate in certificate chain" (błąd OpenSSL 19)

Przyczyna: łańcuch kończy się certyfikatem głównym, któremu klient nie ufa: prywatnym lub firmowym CA albo proxy lub antywirusem, który ponownie podpisuje ruch własnym certyfikatem głównym. Wysłanie certyfikatu głównego, któremu klient ufa, jest nieszkodliwe, tylko zbędne.

Rozwiązanie: dla stron publicznych użyj certyfikatu publicznego CA albo zainstaluj prywatny certyfikat główny u klientów, którzy go potrzebują. Pominięcie certyfikatu głównego w łańcuchu serwera jest schludniejsze, ale tego błędu nie naprawi.

Nieprawidłowa kolejność certyfikatów

Komunikat o błędzie: weryfikacja łańcucha zawodzi u niektórych klientów albo zgłaszają oni, że certyfikat nie jest zaufany.

Przyczyna: certyfikaty w pliku łańcucha są w złej kolejności. TLS 1.3 wymaga, by własny certyfikat serwera był pierwszy, a pozostałe szły po kolei, ale każe klientom radzić sobie także z inną kolejnością (RFC 8446 §4.4.2); starsi lub bardziej rygorystyczni klienci mogą sobie nie poradzić.

Rozwiązanie: umieść certyfikat leaf na początku, a potem każdy certyfikat pośredni, zaczynając od tego, który podpisał Twój leaf.

Wygasły certyfikat w łańcuchu

Komunikat o błędzie: "certificate has expired" — ale data ważności Twojego certyfikatu leaf wygląda dobrze.

Przyczyna: wygasł certyfikat wyżej w łańcuchu. Najsłynniejszy przypadek: DST Root CA X3 firmy IdenTrust, który krzyżowo podpisywał certyfikat główny Let's Encrypt, wygasł 30 września 2021 roku, a urządzenia, które nie ufały ISRG Root X1 (oraz klienci z OpenSSL 1.0.x), zaczęły zawodzić na stronach z Let's Encrypt.

Rozwiązanie: pobierz aktualny certyfikat pośredni od swojego CA i zastąp nim stary. Następnie sprawdź zaktualizowany łańcuch w naszym Sprawdzaniu SSL.

Najlepsze praktyki łańcucha certyfikatów

  • Zawsze wysyłaj certyfikaty pośrednie — nie licz na to, że przeglądarki naprawią łańcuch; aplikacje i klienci API tego nie zrobią.
  • Certyfikat główny jest opcjonalny — klienci używają własnej kopii, więc wysłanie zaufanego dla nich certyfikatu głównego tylko dodaje bajty; certyfikat główny podpisany krzyżowo dla starszych urządzeń to świadomy wyjątek.
  • Zachowaj kolejność — najpierw leaf, potem certyfikaty pośrednie, od tego, który podpisał Twój leaf, w górę.
  • Zautomatyzuj odnawianie — certyfikaty wydane od marca 2026 działają najwyżej 200 dni, a w marcu 2027 skrócą się do 100, natomiast Let's Encrypt przechodzi na certyfikaty 64-dniowe w lutym 2027.
  • Sprawdzaj po każdym odnowieniu lub przeprowadzce — urząd certyfikacji może zmienić certyfikaty pośrednie między odnowieniami. Potem przepuść stronę przez Sprawdzanie SSL.
  • Pilnuj każdej nazwy — www, domena bez prefiksu i każda subdomena mogą być obsługiwane przez różne certyfikaty i łańcuchy. Wyszukiwarka subdomen wypisuje nazwy objęte Twoimi certyfikatami, na podstawie publicznych logów certyfikatów.

Sprawdź swój łańcuch certyfikatów SSL teraz

Darmowe Sprawdzanie SSL od DNS Robot pokazuje łańcuch wysyłany przez stronę, to, czy ufają mu listy certyfikatów głównych Mozilli, Chrome, Apple i Microsoftu, ostrzeżenie o brakującym certyfikacie pośrednim oraz daty każdego certyfikatu. Dla stron za Cloudflare odczytuje certyfikat z publicznych logów CT.

Źródła

  1. Chains of trust (Let's Encrypt certificates), Let's Encrypt
  2. Chrome Root Store, Chromium
  3. RFC 8446 §4.4.2: Certificate, IETF
  4. Ending OCSP support in 2025, Let's Encrypt
  5. Avoid fraud by using encrypted websites in Safari on Mac, Apple
  6. Mozilla Root Store Policy, Mozilla

Często zadawane pytania

Czym jest łańcuch certyfikatów SSL?

To lista certyfikatów łącząca certyfikat strony z głównym urzędem certyfikacji, któremu Twoja przeglądarka już ufa: własny certyfikat leaf strony, jeden lub kilka certyfikatów pośrednich i certyfikat główny z listy przeglądarki. Każdy jest podpisany przez ten powyżej.

Ile certyfikatów jest w typowym łańcuchu SSL?

Rodzaje są trzy (leaf, pośredni, główny), ale serwery wysyłają od 2 do 4 certyfikatów: leaf plus jeden pośredni, czasem z certyfikatami głównymi podpisanymi krzyżowo dla starszych urządzeń. Na przykład łańcuch ECDSA Let's Encrypt biegnie od certyfikatu pośredniego, takiego jak YE2, do Root YE, który jest podpisany krzyżowo przez ISRG Root X2, a ten przez ISRG Root X1.

Czy muszę instalować certyfikaty pośrednie na serwerze?

Tak. Twój serwer musi wysłać certyfikat leaf i wszystkie certyfikaty pośrednie podczas handshake TLS. Jeśli ich brakuje, łańcuch zrywa się w aplikacjach, u klientów API i na starszych urządzeniach z Androidem, nawet jeśli Chrome nadal ładuje stronę, bo sam pobiera certyfikat pośredni.

Co się stanie, jeśli łańcuch certyfikatów jest zerwany?

Klienci, którzy nie potrafią zbudować łańcucha, odrzucają połączenie, w przeglądarkach często z NET::ERR_CERT_AUTHORITY_INVALID, a w aplikacjach z "unable to get local issuer certificate". Chrome potrafi naprawić brakujący certyfikat pośredni, pobierając go, więc zerwany łańcuch może zawodzić tylko u innych klientów.

Czy powinienem dołączyć certyfikat główny do łańcucha serwera?

Nie musisz: klienci używają własnej kopii certyfikatu głównego, więc jego wysłanie tylko dodaje bajty. Nie powoduje błędów, gdy klient mu ufa. Duże serwisy czasem wysyłają certyfikat główny podpisany krzyżowo celowo, aby starsze urządzenia nadal mogły zbudować ścieżkę.

Jak naprawić 'unable to verify the first certificate'?

Twój serwer nie wysyła swojego certyfikatu pośredniego. Przy Let's Encrypt wskaż serwerowi fullchain.pem zamiast cert.pem; przy innym urzędzie umieść jego certyfikat pośredni po swoim certyfikacie w jednym pliku. Przeładuj serwer i sprawdź go narzędziem do sprawdzania SSL.

Co oznacza 'unable to get local issuer certificate'?

Klienci oparci na OpenSSL (curl, Python, PHP, Git) zgłaszają to, gdy nie mogą znaleźć certyfikatu, który wystawił ostatni z posiadanych. Zwykle serwer nie wysyła swojego certyfikatu pośredniego; czasem brakuje własnego pakietu CA klienta lub jest przestarzały, albo proxy ponownie podpisuje ruch własnym certyfikatem głównym. Jeśli narzędzie do sprawdzania SSL pokazuje łańcuch strony jako pełny, napraw problem po stronie klienta.

Jaka jest różnica między certyfikatami głównymi a pośrednimi?

Certyfikat główny jest samopodpisany, znajduje się na liście certyfikatów głównych przeglądarki lub systemu operacyjnego i cieszy się zaufaniem przez około 15 lat (sam certyfikat często działa 20–25). Certyfikat pośredni jest podpisany przez główny, musi być wysyłany przez Twój serwer i działa kilka lat. Certyfikaty pośrednie istnieją po to, aby klucz certyfikatu głównego mógł pozostać offline.

Jak sprawdzić łańcuch certyfikatów SSL?

Uruchom openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -showcerts, zajrzyj do szczegółów certyfikatu w przeglądarce (Chrome: Połączenie jest bezpieczne → Certyfikat jest ważny → Szczegóły) albo użyj internetowego narzędzia do sprawdzania SSL, które pokazuje łańcuch wysyłany przez serwer.

O autorze

Shaik Vahid

Założyciel DNS Robot. Vahid przez lata pracował we wsparciu hostingu, naprawiając klientom domeny, rekordy DNS, certyfikaty SSL i dostarczanie poczty. Tworzy narzędzia DNS Robot i pisze te poradniki na podstawie błędów, które ludzie naprawdę widzą.

Sprawdzanie Certyfikatu SSL

Weryfikuj ważność certyfikatu SSL i szczegóły bezpieczeństwa