X.509

X.509 — міжнародний стандарт (ITU-T), що визначає формат цифрових сертифікатів відкритих ключів і список відкликання сертифікатів (CRL).

Опис

X.509 є фундаментом сучасного інтернет-PKI. Будь-який TLS-сертифікат — HTTPS-сайту, корпоративного VPN чи внутрішнього сервісу — має структуру, визначену цим стандартом. Стандарт описує, які поля обов'язкові, як вони кодуються (ASN.1 / DER) та як перевіряється підпис.

Ключові поля сертифіката X.509 v3:

Поле Значення
Subject Ідентифікатор власника (CN, O, OU тощо)
Issuer Ідентифікатор видавця (CA)
Serial Number Унікальний номер у межах CA
Validity Діапазон дат дії
Public Key Відкритий ключ суб'єкта
Extensions Додаткові атрибути: SANs, Key Usage, BC
Signature Підпис CA над усіма полями

Розширення (Extensions) — найважливіша частина сучасних сертифікатів. Subject Alternative Names (SAN) визначають, для яких доменів чи IP-адрес дійсний сертифікат. Key Usage та Extended Key Usage обмежують призначення ключа (TLS-сервер, підпис коду, клієнтська автентифікація). Basic Constraints вказує, чи є сертифікат CA-сертифікатом.

Формати зберігання: PEM (Base64, .crt, .pem) — найпоширеніший у Linux; DER (бінарний, .der) — для вбудованих систем; PKCS#12 (.p12, .pfx) — архів з ключем і ланцюжком сертифікатів, захищений паролем.

Версія X.509 v3 (RFC 5280) є поточним стандартом. Попередні версії v1 та v2 не підтримують розширення і вважаються застарілими.

В контексті UMTC

Всі сертифікати в UMTC-інфраструктурі відповідають формату X.509 v3:

  • Caddy завантажує серверні X.509-сертифікати для HTTPS та mTLS-термінації
  • Matrix Synapse використовує X.509 для federation TLS між серверами
  • MAS OAuth видає токени після перевірки TLS-сертифіката клієнта
  • Внутрішній CA — самопідписаний X.509 Root CA, якому довіряють всі вузли UMTC

При розгортанні нового вузла (сервера, eNB) йому видається X.509-сертифікат, підписаний внутрішнім CA. Ansible перевіряє fingerprint сертифіката перед застосуванням конфігурацій.

# Перегляд полів сертифіката
openssl x509 -in server.crt -text -noout

# Перевірка ланцюжка довіри
openssl verify -CAfile ca.crt server.crt

# Перегляд SAN (Subject Alternative Names)
openssl x509 -in server.crt -ext subjectAltName -noout

# Fingerprint сертифіката (SHA-256)
openssl x509 -in server.crt -fingerprint -sha256 -noout
💡 Порада
Для внутрішніх сервісів завжди вказуйте SAN з IP-адресою та hostname. Сучасні клієнти (curl, Go, Python) відхиляють сертифікати, де поле CN використовується замість SAN.

Пов'язані терміни

  • pki — PKI визначає процеси видачі та управління X.509-сертифікатами
  • mtls — mTLS вимагає X.509-сертифікатів на обох сторонах з'єднання
  • wireguard — WireGuard використовує власну модель ключів замість X.509

Посилання

Шлях: glossary/x509.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications