Přeskočit obsah

Šablony certifikátů

Návrh projektových šablon certifikátů — vysvětlení každého parametru

Verze dokumentu: 1.0.0
Poslední aktualizace: 2026-06-30


1. Dva systémy šablon

MazeVault nabízí dva odlišné, vzájemně se doplňující systémy šablon. Pochopení rozdílu je zásadní — nacházejí se na různých místech a slouží různým účelům.

Systém Kde Účel
Konfigurační šablony Certifikáty → Šablony (katalog PKI pro celou organizaci) Znovupoužitelné profily certifikátů na úrovni organizace, navázané přímo na CA. Používají se při ad‑hoc žádosti o certifikát.
Projektové šablony Projekt → Nastavení → Šablony Šablony omezené na jeden projekt. Projektová šablona má kategorii (secrets, certificates nebo keys) a podtyp. Projektová šablona kategorie certificates řídí vydávání certifikátů pro daný projekt.
graph TD
    A["Projektová šablona<br/>category = certificates"] -->|"protocol_config.certificate_template_id"| B["Šablona certifikátu<br/>(podřízený záznam)"]
    B --> C["Vydávací engine<br/>(SignCSR)"]
    C --> D["Vydaný X.509 certifikát"]

    classDef proj fill:#EBF5FB,stroke:#2196F3,stroke-width:2px,color:#1565C0
    classDef cert fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px,color:#2E7D32
    class A proj
    class B,C,D cert

Když vytvoříte projektovou šablonu kategorie certificates, MazeVault na pozadí vytvoří podřízenou šablonu certifikátu a propojí ji přes protocol_config.certificate_template_id. Pole popsaná zde jsou klíče protocol_config této projektové šablony; deserializují se do podřízené šablony certifikátu, kterou spotřebovává vydávací engine.


2. Odkud pochází Subject

Subject certifikátu (Common Name, Organization, OU, Email, Locality, State, Country) a jeho Subject Alternative Names nejsou pevně dané v kroku Nastavení certifikátu. Jsou řízeny krokem Proměnné šablony.

V kroku Proměnné definujete proměnné jako COMMON_NAME, ORGANIZATION, ORGANIZATIONAL_UNIT, EMAIL, LOCALITY, STATE, COUNTRY a SAN_DNS. Ty se vyhodnocují pro každou žádost, což umožňuje znovu používat jedinou šablonu pro mnoho konkrétních certifikátů. Krok Nastavení certifikátu proto konfiguruje pouze politiku vydávání a kryptografické parametry — nikdy doslovné hodnoty subjektu.

Jediný přepínač související se subjektem, který se nachází v Nastavení certifikátu, je Přidat Common Name do SAN (add_cn_to_san), protože řídí chování SAN, nikoli hodnotu subjektu.


3. Nastavení certifikátu — referenční přehled parametrů

Krok Nastavení certifikátu je rozdělen do orámovaných karet. Každé pole odpovídá klíči protocol_config. Sloupec Kde se uplatní uvádí, kdy hodnota nabývá účinku:

  • Vydaný certifikát — hodnota se zapíše do vydaného X.509 certifikátu.
  • Validace / brána — hodnota omezuje nebo podmiňuje žádosti, ale nezapisuje se do certifikátu.
  • Generování CSR — hodnota je výchozí, použitá pouze když MazeVault generuje pár klíčů a CSR (nepřepisuje CSR dodané zákazníkem).
  • Rotace — hodnota řídí automatickou obnovu/rotaci.
  • Směrování — hodnota volí vydávající autoritu.

Identita a záměr

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
code Kód šablony string odvozeno z názvu unikátní v rámci org Metadata web-server-tls
cert_type Typ certifikátu enum "" (Auto) jedna z hodnot katalogu, nebo prázdné pro odvození z podtypu Metadata / záměr vydání ssl_tls

Vydávající CA

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
ca_account_id CA účet uuid žádný musí odkazovat na nakonfigurovaný CA účet Směrování 550e8400-…
ca_product_id CA produkt uuid žádný vyžaduje CA účet Směrování 550e8400-…
signature_algorithm Algoritmus podpisu enum "" (výchozí CA) odpovídá názvům Go x509.SignatureAlgorithm Vydaný certifikát SHA256WithRSA

Klíč a algoritmus

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
key_algorithm Algoritmus klíče enum RSA RSA, ECDSA, Ed25519 Generování CSR ECDSA
key_size Výchozí velikost klíče integer 2048 platná velikost pro algoritmus (RSA: 2048/3072/4096; ECDSA: 256/384/521; Ed25519: 256) Generování CSR 3072
allowed_key_sizes Povolené velikosti klíče integer[] [] (libovolná) podmnožina platných velikostí pro algoritmus Validace / brána (vynuceno při vydání) [2048, 4096]

Povolené velikosti klíče se vynucují při podpisu

Když je allowed_key_sizes neprázdné, vydávací engine před vytvořením certifikátu odmítne jakékoli CSR, jehož bitová délka veřejného klíče není v seznamu — včetně externě dodaných CSR. Prázdný seznam znamená, že je přijata libovolná velikost platná pro daný algoritmus.

Platnost

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
validity_days Platnost (dny) integer 365 > 0 Vydaný certifikát (NotAfter = NotBefore + validity_days) 90
min_validity_days Min. platnost (dny) integer 30 max_validity_days Validace / brána 30
max_validity_days Max. platnost (dny) integer 825 min_validity_days Validace / brána 825

Použití klíče a rozšířené použití klíče

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
key_usage Použití klíče string[] [] podmnožina 9 bitů dle RFC 5280 §4.2.1.3 Vydaný certifikát ["digitalSignature","keyEncipherment"]
extended_key_usage Rozšířené použití klíče string[] [] podmnožina 6 podporovaných EKU OID Vydaný certifikát ["serverAuth","clientAuth"]
add_cn_to_san Přidat CN do SAN boolean true Generování CSR (chování SAN) true

Hodnoty Použití klíče: digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign, encipherOnly, decipherOnly.

Hodnoty Rozšířeného použití klíče: serverAuth, clientAuth, codeSigning, emailProtection, timeStamping, ocspSigning.

Omezení a politiky CA

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
is_ca Vydat jako CA certifikát boolean false Vydaný certifikát (Basic Constraints) false
max_path_length Max. délka cesty integer 0 smysluplné pouze když je is_ca true Vydaný certifikát (pathLenConstraint) 0
policy_identifiers Identifikátory politik string[] [] OID v tečkovém zápisu Vydaný certifikát (certificate policies) ["1.3.6.1.4.1.311.21.10"]
certificate_policies Politiky certifikátu string[] [] OID v tečkovém zápisu Vydaný certifikát (sloučeno s policy_identifiers, deduplikováno) ["2.23.140.1.2.1"]

Délka cesty CA a zpracování politik

Když je is_ca true a max_path_length je 0, certifikát je omezen na pathlen:0 (může vydávat koncové certifikáty, ale ne další CA). policy_identifiers a certificate_policies se slučují a deduplikují; neplatné OID řetězce se přeskočí s varováním, místo aby přerušily vydání.

Obnova a rotace

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
auto_renewal_enabled Automatická obnova boolean true Rotace true
renewal_days_before_expiry Dnů před vypršením pro obnovu integer 30 > 0 Rotace 30
renewal_key_policy Politika klíče při obnově enum regenerate regenerate nebo reuse Rotace regenerate

Přednost politiky klíče při obnově

Šablona, která pevně nastaví regenerate (generovat nový pár klíčů při obnově), přepíše volnější organizační politiku znovupoužití klíče. reuse zachová stávající soukromý klíč. Když není v šabloně nastavena žádná hodnota, uplatní se organizační politika obnovy.

Governance

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
require_approval Vyžadovat schválení před vydáním boolean false Validace / brána false

Integrace s externí CA

Klíč JSON Popisek v UI Typ Výchozí Omezení Kde se uplatní Příklad
external_template_name Název externí šablony string "" použito pouze s externí CA (např. ADCS) Směrování (externí CA) WebServerV2
external_template_oid OID externí šablony string "" OID v tečkovém zápisu Směrování (externí CA) 1.3.6.1.4.1.311.21.8.1

4. Co se zapíše do vydaného certifikátu

Pro rychlou orientaci zde je rozdělení každého řízeného pole:

  • Zapsáno do vydaného certifikátu: validity_days, key_usage, extended_key_usage, is_ca, max_path_length, policy_identifiers, certificate_policies, signature_algorithm.
  • Pouze validace / brána (není v certifikátu): allowed_key_sizes, min_validity_days, max_validity_days, require_approval.
  • Chování rotace: auto_renewal_enabled, renewal_days_before_expiry, renewal_key_policy.
  • Pouze výchozí hodnoty pro generování CSR: key_algorithm, key_size, add_cn_to_san. Uplatní se, když MazeVault generuje pár klíčů a CSR; nepřepisují CSR dodané zákazníkem (s výjimkou allowed_key_sizes, které se vynucuje při podpisu pro všechny CSR).
  • Směrování / výběr: ca_account_id, ca_product_id, external_template_name, external_template_oid.

5. Související příručky