Przedsiębiorca przedstawiający koncepcję biznesową na tablicy stojący w biurze CERTYFIKAT ORIGINALNY

Certyfikat X.509 – jak działa i gdzie jest używany

9 min. czytania

Certyfikat X.509 to standardowy format cyfrowego certyfikatu klucza publicznego, który wiąże klucz publiczny z tożsamością (osoby, firmy, domeny, urządzenia) i umożliwia bezpieczne uwierzytelnianie oraz szyfrowanie komunikacji w sieciach – od HTTPS, przez podpisywanie e‑maili i kodu, aż po IoT.

Poniżej znajdziesz rozbudowany, gotowy do publikacji poradnik techniczny po polsku: od podstaw, przez szczegóły formatów i PKI, aż po praktyczne zastosowania i przykładowe komendy.

1. Co to jest certyfikat X.509?

X.509 to standard Międzynarodowego Związku Telekomunikacyjnego (ITU), definiujący format certyfikatów klucza publicznego oraz elementy infrastruktury klucza publicznego (PKI). Certyfikat X.509 to:

  • cyfrowy dokument – pliki .crt, .cer, .pem itp.;
  • zawiera klucz publiczny oraz dane identyfikujące właściciela;
  • podpisany cyfrowo – przez zaufany urząd certyfikacji (CA) albo samopodpisany.

Najczęściej X.509 wykorzystuje się w następujących zastosowaniach:

  • SSL/TLS i HTTPS – bezpieczeństwo stron WWW;
  • S/MIME – szyfrowanie i podpisywanie e‑maili;
  • podpisywaniu kodu – aplikacje, sterowniki;
  • podpisywaniu dokumentów – np. PDF, XML, e‑podpis;
  • uwierzytelnianiu urządzeń i użytkowników – IoT, VPN, systemy SSO, MQ.

2. Jak działa certyfikat X.509 – idea i kryptografia

2.1. Kryptografia asymetryczna

Certyfikat X.509 bazuje na kryptografii asymetrycznej:

  • każda strona ma parę kluczy: klucz prywatny i klucz publiczny,
  • klucz publiczny może być szeroko rozpowszechniany,
  • dane zaszyfrowane kluczem publicznym może rozszyfrować tylko posiadacz odpowiadającego mu klucza prywatnego,
  • podpis cyfrowy działa odwrotnie: tworzony jest kluczem prywatnym, a każdy z kluczem publicznym może go sprawdzić.

Certyfikat X.509 zawiera klucz publiczny oraz przypisaną do niego tożsamość (np. domena, firma, osoba), a urząd certyfikacji swoim podpisem potwierdza, że para tożsamość ↔ klucz publiczny jest poprawna.

2.2. Rola PKI i urzędów certyfikacji (CA)

Infrastruktura klucza publicznego (PKI) składa się z następujących elementów:

  • Root CA (główny urząd) – zaufany punkt, którego certyfikaty są fabrycznie zainstalowane w systemach/przeglądarkach;
  • Intermediate CA – pośrednie urzędy, którym root deleguje wystawianie certyfikatów;
  • end-entity / leaf certificates – certyfikaty końcowe (np. dla domeny, użytkownika, urządzenia).

W typowym scenariuszu:

  1. Podmiot generuje parę kluczy i CSR (Certificate Signing Request).
  2. Wysyła CSR do CA.
  3. CA weryfikuje tożsamość (np. domeny, organizacji).
  4. CA podpisuje certyfikat X.509, dołączając swoje dane i numer seryjny.
  5. Klienci ufają certyfikatowi, bo ufają CA, który go podpisał (lub łańcuchowi CA).

3. Co zawiera certyfikat X.509 – budowa i pola

Standard X.509 bardzo precyzyjnie określa, jakie dane znajdują się w certyfikacie. Typowy certyfikat (v3) zawiera co najmniej:

  • wersję (Version) – dziś najczęściej v3;
  • numer seryjny (Serial Number) – unikalny w obrębie CA;
  • algorytm podpisu (Signature Algorithm) – np. sha256WithRSAEncryption;
  • issuer – nazwa wyróżniająca urzędu CA, który wystawił certyfikat;
  • validity – przedział czasu ważności (w tym Not Before i Not After);
  • subject – nazwa wyróżniająca właściciela (podmiotu certyfikatu);
  • subject public key info – algorytm i sam klucz publiczny właściciela.

Dodatkowo, w wersji 3 mogą występować następujące rozszerzenia:

  • key usage – do czego może być użyty klucz (np. podpis, szyfrowanie, podpisywanie certyfikatów);
  • extended key usage – bardziej szczegółowe zastosowania (TLS server auth, client auth, code signing itd.);
  • subject alternative name (SAN) – dodatkowe nazwy, np. aliasy domen, adresy e‑mail;
  • basic constraints – czy certyfikat może działać jako CA (czy jest to certyfikat urzędu certyfikacji).

Certyfikat jest zapisany binarnie w kodowaniu BER/DER, a często dystrybuowany w formacie PEM (Base64 z nagłówkiem „BEGIN CERTIFICATE”).

4. Łańcuch zaufania i weryfikacja certyfikatu

4.1. Łańcuch certyfikatów

Aby klient mógł zaufać certyfikatowi, musi mieć możliwość zbudowania łańcucha zaufania składającego się z:

  1. certyfikatu końcowego (np. www.example.com),
  2. certyfikatu pośredniego (Intermediate CA),
  3. certyfikatu głównego (Root CA), któremu klient już ufa (np. znajduje się w magazynie systemu/przeglądarki).

Podczas połączenia TLS serwer zwykle przesyła certyfikat końcowy oraz certyfikaty pośrednie. Klient wykonuje następujące weryfikacje:

  • spójność łańcucha – kolejne certyfikaty muszą poprawnie weryfikować podpis poprzedniego;
  • status ważności i unieważnienia – sprawdzenie dat (Not Before/Not After) oraz CRL/OCSP;
  • zgodność zastosowań – ocena Key Usage/Extended Key Usage pod kątem danego scenariusza.

Dopiero wtedy połączenie jest uznawane za bezpieczne i zaufane.

4.2. Weryfikacja w praktyce (np. IoT Hub)

Przykład z Azure IoT Hub obrazuje ten mechanizm w praktyce:

  • urządzenie posiada certyfikat X.509 powiązany z CA zarejestrowanym w IoT Hub;
  • przy połączeniu prezentuje pełny łańcuch certyfikatów do zaufanego CA;
  • usługa weryfikuje łańcuch (podpisy, zgodność z zaufanym CA);
  • dowód posiadania klucza prywatnego odbywa się przez mechanizm challenge/response;
  • po pomyślnej weryfikacji urządzenie zostaje uwierzytelnione.

5. Gdzie używa się certyfikatów X.509 – główne zastosowania

5.1. HTTPS, SSL/TLS i „certyfikat SSL”

W praktyce, kiedy mówi się o „certyfikacie SSL” dla strony WWW, chodzi właśnie o certyfikat X.509 używany w protokołach TLS (następca SSL). Najważniejsze korzyści:

  • weryfikacja tożsamości serwera – odwzorowanie domena ↔ klucz publiczny;
  • szyfrowanie całego ruchu – po udanym handshake TLS dane chronione są kluczami symetrycznymi;
  • czytelny wskaźnik bezpieczeństwa – kłódka i https:// zamiast http://.

5.2. S/MIME – e‑mail

W standardzie S/MIME certyfikaty X.509 umożliwiają podpisywanie e‑maili (weryfikacja autora i integralności) oraz szyfrowanie e‑maili (tylko adresat z kluczem prywatnym może odczytać treść).

5.3. Podpisywanie kodu i dokumentów

Podpisywanie kodu (Code Signing) pozwala systemom operacyjnym sprawdzić, czy aplikacje/sterowniki pochodzą z zaufanego źródła i nie zostały zmodyfikowane.

Podpisywanie dokumentów (np. PDF) umożliwia weryfikację autora oraz integralności pliku po stronie odbiorcy.

5.4. Uwierzytelnianie urządzeń i użytkowników (IoT, SSO, MQ)

Certyfikaty X.509 służą do silnego uwierzytelniania w rozproszonych systemach:

  • IoT – każde urządzenie może posiadać unikatowy certyfikat X.509 (device certificate) wystawiony przez zaufany CA i w ten sposób uwierzytelniać się do platformy (np. Azure IoT Hub);
  • IBM MQ – wykorzystuje certyfikaty X.509 do zabezpieczenia i uwierzytelniania połączeń między brokerami i klientami;
  • SSO/federacja tożsamości – zewnętrzni IdP często wymagają certyfikatu X.509 w formacie PEM (.pem, .cer, .crt) do weryfikacji podpisów tokenów.

5.5. VPN, serwery, usługi wewnętrzne

X.509 jest powszechnie wykorzystywany w środowiskach sieciowych i serwerowych:

  • VPN (IPsec, SSL VPN) – uwierzytelnianie bram i/lub klientów certyfikatami;
  • serwerach wewnętrznych – LDAPs, HTTPS dla intranetu;
  • połączeniach serwer–serwer – mikroserwisy, bazy danych z TLS.

6. Format certyfikatu X.509 – DER, PEM, .cer, .crt

Choć standard X.509 definiuje strukturę danych, w praktyce certyfikaty spotyka się w dwóch popularnych postaciach: DER (czysta binarka zgodna z BER/DER) oraz PEM (DER zakodowany Base64 z nagłówkiem).

Tak wygląda nagłówek i stopka certyfikatu w formacie PEM:


-----BEGIN CERTIFICATE-----
[dane Base64]
-----END CERTIFICATE-----

Rozszerzenia plików w praktyce: .cer i .crt mogą zawierać dane w DER lub PEM (zależnie od systemu), natomiast .pem zwykle oznacza PEM i bywa wykorzystywany do przechowywania więcej niż jednego certyfikatu.

Przykład integracji: Dropbox akceptuje formaty .pem, .cer oraz .crt jako certyfikat X.509 dostarczany przez dostawcę tożsamości.

7. Jak „działa” certyfikat X.509 w konkretnych scenariuszach

7.1. Połączenie HTTPS użytkownik ↔ serwer WWW

Poniżej przebieg połączenia HTTPS krok po kroku:

  1. Użytkownik wpisuje https://example.com.
  2. Przeglądarka łączy się z serwerem i inicjuje TLS handshake.
  3. Serwer przesyła swój certyfikat X.509 (plus ewentualne pośrednie CA).
  4. Przeglądarka wykonuje weryfikacje certyfikatu:
  • weryfikuje łańcuch certyfikatów do zaufanego root CA,
  • sprawdza datę ważności oraz nazwę domeny (Subject/SAN),
  • opcjonalnie sprawdza unieważnienie (CRL/OCSP).
  1. Po poprawnej weryfikacji przeglądarka uznaje tożsamość serwera za potwierdzoną.
  2. Następuje uzgodnienie algorytmów, wymiana kluczy (np. ECDHE) i ustanowienie klucza sesji symetrycznej, który szyfruje cały późniejszy ruch.

W tym scenariuszu certyfikat X.509 służy do uwierzytelnienia serwera i bezpiecznego uzgodnienia kluczy.

7.2. Uwierzytelnianie urządzeń IoT

Na przykładzie Azure IoT Hub proces wygląda następująco:

  1. Producent urządzenia generuje parę kluczy i certyfikat urządzenia X.509, podpisany przez własny lub komercyjny CA.
  2. W chmurze rejestrowany jest certyfikat CA (lub indywidualne certyfikaty urządzeń).
  3. Przy pierwszym połączeniu urządzenie przesyła łańcuch certyfikatów aż do CA.
  4. IoT Hub wykonuje następujące kroki:
  • weryfikuje spójność łańcucha (podpisy, daty, parametry),
  • generuje wyzwanie kryptograficzne (proof-of-possession),
  • urządzenie podpisuje wyzwanie swoim kluczem prywatnym,
  • IoT Hub weryfikuje podpis kluczem publicznym z certyfikatu urządzenia.
  1. Po pozytywnej weryfikacji urządzenie jest uwierzytelnione.

8. Praktyczna instrukcja – jak pracować z certyfikatami X.509 (OpenSSL)

Poniższa sekcja to praktyczny „how‑to” dla administratorów i devopsów.

8.1. Wygenerowanie klucza prywatnego

Aby utworzyć klucz prywatny RSA 2048 lub ECDSA (prime256v1), użyj poniższych poleceń:


# RSA 2048-bit
openssl genrsa -out private.key 2048

# albo klucz ECDSA, np. krzywa prime256v1
openssl ecparam -genkey -name prime256v1 -out private.key

8.2. Utworzenie CSR (żądania certyfikatu)

CSR wygenerujesz tym poleceniem:


openssl req -new -key private.key -out request.csr

Podczas generowania CSR podajesz kluczowe informacje:

  • CN (Common Name) – np. domena example.com albo imię i nazwisko;
  • dane organizacji/kraju – pola O, OU, C itp.;
  • (opcjonalnie) rozszerzenia – np. SAN, zwykle konfigurowane w pliku konfiguracyjnym OpenSSL.

Gotowy CSR przekazujesz do CA (komercyjnego lub wewnętrznego).

8.3. Wystawienie własnego samopodpisanego certyfikatu (do testów)

Do szybkich testów możesz wygenerować samopodpisany certyfikat X.509:


openssl req -x509 -new -nodes -key private.key \
-sha256 -days 365 -out certificate.crt

Przełącznik -x509 instruuje OpenSSL, aby od razu wygenerować certyfikat (zamiast CSR), a wynikowy plik posłuży np. w środowiskach deweloperskich lub jako root CA w wewnętrznej PKI.

8.4. Podgląd zawartości certyfikatu X.509

Treść certyfikatu odczytasz w formie czytelnego tekstu tym poleceniem:


openssl x509 -in certificate.crt -text -noout

Zobaczysz wszystkie istotne pola, w tym:

  • wersję i numer seryjny,
  • issuer i subject,
  • daty ważności,
  • klucz publiczny i parametry,
  • rozszerzenia (Key Usage, SAN itd.).

9. Najczęstsze problemy z certyfikatami X.509 i ich przyczyny

Poniżej lista typowych błędów oraz ich źródeł:

  • nieważny certyfikat (expired) – pole Not After wskazuje datę w przeszłości;
  • niepoprawna nazwa – domena w przeglądarce nie zgadza się z CN/SAN;
  • niekompletny łańcuch – serwer nie przesyła certyfikatów pośrednich CA, więc klient nie zbuduje pełnego łańcucha;
  • nieprawidłowe Key Usage/EKU – certyfikat nie jest przeznaczony do danego zastosowania (np. nie może być użyty jako CA);
  • nieznany CA – certyfikat podpisany przez urząd, któremu klient nie ufa (brak w magazynie zaufania);
  • unieważniony certyfikat – CA dodał go do CRL/OCSP (np. kompromitacja klucza, błąd wydania).