Š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ýjimkouallowed_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¶
- Správa certifikátů — žádost, odvolání, import a export certifikátů.
- Automatizace certifikátů ACME — automatické vydávání přes ACME.