Správa certifikátů¶
PKI operace — Žádosti, revokace, import, export a správa CRL
Verze dokumentu: 1.3.0
Poslední aktualizace: 2026-06-21
1. Životní cyklus certifikátu¶
graph LR
A["📝 Žádost<br/>(CSR)"] --> B["⏳ Schválení"]
B --> C["✅ Vydání"]
C --> D["🔒 Aktivní"]
D --> E["🔄 Obnova"]
E --> C
D --> F["❌ Revokace"]
F --> G["📜 Aktualizace CRL"]
D --> H["⏰ Expirace"]
classDef request fill:#EBF5FB,stroke:#2196F3,stroke-width:2px,color:#1565C0
classDef active fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px,color:#2E7D32
classDef warning fill:#FFF8E1,stroke:#FF9800,stroke-width:2px,color:#E65100
classDef danger fill:#FFEBEE,stroke:#F44336,stroke-width:2px,color:#C62828
class A,B request
class C,D active
class E,H warning
class F,G danger
2. Žádost o certifikát¶
Přes webové rozhraní¶
- Přejděte na Certifikáty → Požádat o certifikát
- Zvolte Šablonu certifikátu nebo nakonfigurujte ručně:
| Šablona | Key Usage | Extended Key Usage | Typická platnost |
|---|---|---|---|
| Webový server | Digital Signature, Key Encipherment | Server Authentication | 1 rok |
| Klientská autentizace | Digital Signature | Client Authentication | 1 rok |
| Podpis kódu | Digital Signature | Code Signing | 2 roky |
| E-mail (S/MIME) | Digital Signature, Key Encipherment | Email Protection | 1 rok |
- Vyplňte informace o subjektu:
- Common Name (CN): Primární doména nebo identifikátor
- Subject Alternative Names: Další domény a IP adresy
- Organizace, Země atd.: Dle požadavků vaší politiky
- Vyberte Vydávající CA
- Klikněte na Odeslat žádost
Přes API¶
curl -X POST https://vault.example.com/api/v1/certificates/csr \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"common_name": "api.example.com",
"san_dns": ["api.example.com", "api-internal.example.com"],
"key_type": "RSA",
"key_size": 2048,
"ca_id": "ca_root001",
"project_id": "proj_abc123",
"template": "web_server",
"dcv_method": "dns",
"order_years": 2,
"tech_contact": {"firstname": "Jana", "lastname": "Nováková", "email": "pki@example.com"}
}'
dcv_method, ca_product_id, order_years, requested_validity_days, tech_contact a voucher jsou volitelná přepsání pro komerční CA; vynechané hodnoty se dědí ze šablony a poté z účtu CA (viz Objednávky u komerční CA).
3. Schvalování certifikátů¶
V závislosti na politice vaší organizace:
| Politika | Chování |
|---|---|
| Automatické schválení | Certifikát je vydán okamžitě po žádosti |
| Schválení administrátorem | Certifikát přejde do stavu pending_approval; administrátor musí žádost schválit |
| Schválení správcem projektu | Správce projektu může schválit certifikáty pro svůj projekt |
Schválení žádosti¶
- Přejděte na Certifikáty → Čekající žádosti
- Přezkoumejte podrobnosti certifikátu
- Klikněte na Schválit nebo Zamítnout
4. Revokace certifikátu¶
Kdy revokovat¶
- Privátní klíč byl kompromitován
- Změnila se příslušnost držitele certifikátu
- Certifikát byl nahrazen novým
- Služba používající certifikát byla vyřazena z provozu
Postup revokace¶
- Přejděte na Certifikáty → Aktivní a najděte certifikát
- Klikněte na Revokovat
- Vyberte Důvod revokace (RFC 5280):
keyCompromise— Privátní klíč je kompromitovánaffiliationChanged— Změnila se příslušnost subjektusuperseded— Nahrazen novým certifikátemcessationOfOperation— Služba vyřazena z provozucertificateHold— Dočasné pozastavení (lze uvolnit)- Přidejte volitelný komentář
- Klikněte na Potvrdit revokaci
CRL je po revokaci automaticky přegenerován.
Zrušení revokace certifikátu¶
Certifikáty revokované s důvodem certificateHold lze uvolnit:
- Přejděte na Certifikáty → Revokované a najděte certifikát
- Klikněte na Zrušit revokaci
- Potvrďte akci
5. Import certifikátů¶
Import jednotlivého certifikátu¶
- Přejděte na Certifikáty → Import
- Nahrajte nebo vložte:
- Certifikát (formát PEM, povinný)
- Privátní klíč (formát PEM, volitelný)
- Řetězec CA (formát PEM, volitelný)
- Vyberte cílový projekt
- Klikněte na Importovat
Hromadný import (PEM balíček)¶
- Přejděte na Certifikáty → Import → Hromadný import
- Nahrajte PEM balíček obsahující více certifikátů
- Vyberte cílový projekt
- Klikněte na Importovat
Systém analyzuje balíček, identifikuje jednotlivé certifikáty a importuje je s automatickou detekcí řetězce.
Import více souborů (certifikát + samostatný soubor s klíčem)¶
Pokud nahrajete více souborů najednou (např. server.pem a server.key), MazeVault při náhledu spáruje každý samostatný soubor .key s certifikátem, jehož veřejnému klíči odpovídá. Spárovaný certifikát zobrazí odznak Private Key a zdroj ve tvaru server.pem + server.key. Při importu se klíč odesílá společně se svým certifikátem v jednom požadavku, takže se uloží k danému certifikátu – včetně certifikátů, které už v MazeVaultu existují bez klíče (viz níže). Klíče, které neodpovídají žádnému nahranému certifikátu, jsou hlášeny jako chyba a nikdy se neimportují samostatně.
Doplnění privátního klíče k existujícímu certifikátu¶
Certifikáty podepsané z nahraného CSR jsou uloženy s custody klíče none, protože MazeVault privátní klíč nikdy neviděl. Totéž platí pro certifikáty importované bez klíče. Klíč lze pod správu MazeVaultu dostat dodatečně dvěma cestami – obě končí ve stejné backendové logice, která klíč před uložením ověří proti veřejnému klíči certifikátu:
- Detail certifikátu → Overview → Import private key (doporučeno). Nahrajte PEM soubor s klíčem, šifrovaný PEM klíč nebo PFX/P12 balíček, případně PEM klíč vložte. Požadavek je přivázán k danému certifikátu (
expected_certificate_id), takže materiál patřící jinému certifikátu je odmítnut místo založení nového záznamu. - Certificates → Import: importujte PFX/P12, PEM obsahující certifikát i klíč, nebo více souborů (certifikát + jeho
.key) do stejného projektu. MazeVault existující záznam rozpozná podle SHA-256 otisku a klíč k němu připojí.
Pravidla platná pro obě cesty:
- Klíč musí odpovídat certifikátu; nesoulad vrátí
private key does not match certificate. - Certifikát, který už privátní klíč má (lokálně nebo externě), se nikdy nepřepíše; import vrátí
already has a private key. - Import do jiného projektu, než ve kterém certifikát leží, je odmítnut.
- V Orchestrator Mode se klíč odloží do zvolené integrace secret manageru; lokální uložení není nabízeno.
- Opakovaný import certifikátu bez klíče, který už existuje, vrátí nápovědu, jak klíč doplnit.
Doplnění certifikátu, který nemá tělo¶
Spravovaný certifikát adoptovaný z discovery nebo synchronizovaný z výpisu CA může obsahovat pouze metadata (bez těla certifikátu), pokud vznikl dříve, než MazeVault začal těla ukládat, nebo pokud ho objevil jen agent na starém protokolu. Takový certifikát nejde exportovat, nasadit ani obnovit a privátní klíč k němu nelze ověřit. Doplní se kteroukoli z těchto cest — výsledek je totožný:
- Automaticky — příští sken agenta nebo synchronizace s CA, která certifikát uvidí, tělo připojí (párování podle SHA-256 otisku).
- Detail certifikátu → Complete certificate — nahrajte veřejný certifikát (CRT/PEM/DER), volitelně spolu s privátním klíčem, nebo PFX/P12. Nahraný materiál musí odpovídat uloženému otisku.
- Certificates → Import — import samotného veřejného certifikátu záznam doplní místo hlášení „již existuje“; položka výsledku importu nese
message: "existing certificate record completed with the uploaded certificate body".
Tělo se uloží spolu s identitou z něj odvozenou (serial, otisky, subjekt, vydavatel, platnost, algoritmy, key usage, SAN, typ). Stav active se aktualizuje podle platnosti certifikátu; revokovaný nebo čekající záznam si stav ponechá. Pokud je s certifikátem dodán privátní klíč: připojí se, nemá‑li záznam custody; tiše se přijme, shoduje‑li se s existující custody; a je odmítnut s explicitní chybou až po uložení těla, pokud se neshoduje. Lokálně uložený klíč, který dříve nešlo ověřit, se ověří při doplnění těla; neshoda se označí v metadatech certifikátu a v auditu, ale klíč se nikdy nesmaže — zkontrolujte ho a nahraďte vědomě.
Validace nahraného CSR vůči šabloně¶
Nahrané CSR se kontroluje proti zvolené šabloně ještě před odesláním do CA, takže porušení politiky selže okamžitě:
- CSR musí být správně utvořené a jeho vlastní podpis musí být platný.
- Pokud šablona definuje
allowed_key_sizes, musí být velikost klíče z CSR v seznamu (např. RSA-4096 CSR je odmítnut šablonou, která povoluje jen 2048/3072). - Pokud má šablona explicitní SAN politiku v
san_config(allowed_san_types,san_validation_pattern,max_san_count), musí jí SAN položky z CSR vyhovět. Sloupceallow_additional_sans/max_san_countna nejvyšší úrovni se na nahraná CSR neuplatňují. - Nastavením
san_config.require_san = truešablona odmítne CSR pouze s CN bez SAN, které moderní TLS klienti neakceptují. - Systémové šablony (mTLS agentů a gateway) jsou z těchto kontrol vyjmuty.
Pokud CA vyžaduje ruční schválení (např. ADCS s manager approval), požadavek přejde do stavu submitted_to_ca a certifikát se po schválení v CA dokončí automaticky. Pokud automatické vydání selže z jiného důvodu, automaticky schválený požadavek skončí ve stavu failed se zaznamenanou chybou, zatímco ručně schválený požadavek se vrátí do pending, aby jej schvalovatel mohl zopakovat.
Příprava obnovy po importu¶
- Pokud je importovaný certifikát navázaný na spravovaný CA účet a splňuje předpoklady pro rotaci, MazeVault může automaticky připravit metadata obnovy.
- Automaticky připravené rotační konfigurace zůstávají vypnuté, dokud je operátor výslovně nepovolí. Tím se zabrání tiché rotaci soukromého klíče ihned po importu.
- Počáteční lead time obnovy se určuje z efektivní hierarchie politik certifikátu, šablony a CA účtu, takže importovaný certifikát převezme zamýšlené okno obnovy místo skrytého defaultu.
Per-certifikátová politika obnovy klíče¶
Pro obnovitelné certifikáty lze přepsat zacházení s klíčem na úrovni jednotlivého certifikátu:
Regeneratepři obnově vygeneruje nový privátní klíč.Reusezachová stávající klíčový materiál, pokud to provider, custody režim a downstream deployment cesta podporují.- Ponechání hodnoty prázdné předá rozhodnutí šabloně nebo vyšší politice.
Volbu Reuse používejte jen tam, kde downstream systémy vyžadují kontinuitu klíče nebo je opětovné vystavení příliš nákladné.
Kontrola readiness před zapnutím automatizace¶
- Před zapnutím automatizace certifikátu zkontrolujte pohled Project Rotations.
- Zdroje obnovy i deploymentu nyní zobrazují inline readiness a preflight stav.
Manual Review Requiredznamená, že MazeVault neumí cíl automaticky ověřit a operátor by měl před produkčním rolloutem potvrdit deployment cestu ručně.
6. Export certifikátů¶
Formáty exportu¶
| Formát | Přípona | Zahrnuje klíč | Případ použití |
|---|---|---|---|
| PEM | .pem, .crt |
Volitelně | Linux/Unix servery, Apache, Nginx |
| DER | .der, .cer |
Ne | Java aplikace, Windows |
| PKCS#12 | .p12, .pfx |
Ano (chráněno heslem) | Windows, import do Java KeyStore |
Postup exportu¶
- Přejděte na stránku detailu certifikátu
- Klikněte na Export
- Vyberte formát a možnosti:
- Zahrnout řetězec CA
- Zahrnout privátní klíč (vyžaduje oprávnění
certificates.export_key) - Nastavit heslo (pro PKCS#12)
- Stáhněte soubor
Export privátního klíče
Export certifikátu s privátním klíčem je bezpečnostně citlivá operace zaznamenaná v auditním protokolu. Zajistěte bezpečný přenos privátního klíče.
Jak se určuje řetězec CA¶
Se zapnutou volbou Zahrnout řetězec CA exportuje MazeVault efektivní řetězec vydavatelů certifikátu. Tentýž řetězec se zobrazuje na záložce Chain v detailu certifikátu, vrací ho API a instalují ho agenti — všichni konzumenti tedy vidí identický materiál.
- Uložený řetězec má přednost. Řetězec zachycený při importu nebo vydání certifikátu (např. z PFX nebo od CA při vydání) se exportuje přesně tak, jak je uložen. MazeVault k němu nikdy nic nepřidává — pokud vydavatel dodal
leaf + intermediatebez rootu, dostanete přesně to. - Inventář jen tehdy, když nic uloženo není. Nemá-li certifikát uložený řetězec (typicky podřízená CA importovaná samostatně), hledá MazeVault vydavatele mezi CA certifikáty spravovanými v téže organizaci — včetně interní CA. Kandidát se použije jen tehdy, když kryptograficky ověří podpis certifikátu; shoda jména sama o sobě nikdy nestačí. Řetězec se sleduje až k self-signed rootu.
- Transparentnost. Záložka Chain označí zdroj (Stored with certificate / Resolved from inventory / No chain), ukáže, zda je řetězec úplný až k rootu, a vypíše varování, např. revokovaného vydavatele. Zobrazení ani export do certifikátu nic nezapisují.
Export podřízené CA
Aby se podřízená CA exportovala včetně svého rootu, naimportujte root CA certifikát jednou do libovolného projektu téže organizace. Od té chvíle se root automaticky přidává do exportu, do záložky Chain i do nasazení agentem.
Nasazení a trust store
Agenti rozdělují exportovaný balíček na všech cílech stejně: certifikát s klíčem jde do keystore (JKS, PKCS#12, Windows My), řetězec vydavatelů do trust store (Windows Root/CA, adresář CA v Linuxu), pokud má agent zapnutou volbu install_chain_to_trust_store. Cíle Windows Root/CA dostávají pouze veřejné certifikáty — nikdy privátní klíč.
7. Automatizace certifikátů pomocí ACME¶
MazeVault obsahuje vestavěný ACME server (RFC 8555), který umožňuje automatické vydávání certifikátů přímo z Kubernetes pomocí cert-manager.
Rychlý přehled¶
- Vygenerujte EAB přihlašovací údaje v MazeVault (Nastavení organizace → Přístup ACME)
- Vytvořte Kubernetes Secret s HMAC klíčem
- Nasaďte ClusterIssuer směřující na ACME adresář vašeho MazeVault
- Anotujte Ingress nebo vytvořte
Certificateresources — cert-manager se postará o zbytek
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: mazevault-issuer
spec:
acme:
server: https://vault.example.com/api/acme/directory
externalAccountBinding:
keyID: "VAŠE_EAB_KEY_ID"
keySecretRef:
name: mazevault-eab-secret
key: secret
privateKeySecretRef:
name: mazevault-acme-account-key
solvers:
- http01:
ingress:
ingressClassName: nginx
Interní domény (.local, .internal, .lan, .corp) jsou automaticky schváleny bez HTTP-01 výzvy.
Kompletní ACME návod
Podrobné pokyny krok za krokem, YAML příklady, ACME profily a řešení problémů najdete v dedikovaném Návodu pro automatizaci certifikátů pomocí ACME.
8. Správa CRL¶
Seznam revokovaných certifikátů (CRL)¶
MazeVault automaticky generuje CRL při revokaci certifikátů. CRL jsou dostupné na:
| Formát | URL |
|---|---|
| DER | https://vault.example.com/api/v1/crl |
| PEM | https://vault.example.com/api/v1/crl/pem |
Distribuční bod CRL¶
Nakonfigurujte CRL Distribution Point ve svých certifikátech tak, aby odkazoval na vaši MazeVault CRL URL. Tato informace je automaticky zahrnuta v certifikátech vydaných MazeVault CA.
Vynucená regenerace CRL¶
V případě potřeby ručně přegenerujte CRL:
- Přejděte na Certifikáty → CRL
- Klikněte na Přegenerovat CRL
- Vyberte typ: Úplný nebo Delta
8. OCSP validace¶
OCSP poskytuje ověřování stavu certifikátu v reálném čase jako alternativu k CRL:
| Vlastnost | CRL | OCSP |
|---|---|---|
| V reálném čase | ❌ (periodické generování) | ✅ |
| Šířka pásma | Vyšší (celý seznam) | Nižší (per certifikát) |
| Soukromí | Klient stahuje vše | Klient dotazuje konkrétní certifikát |
| Offline podpora | ✅ (uložený CRL) | ❌ (vyžaduje připojení) |
OCSP URL¶
Testování OCSP¶
9. Objednávky u komerční CA (SSLmarket)¶
Veřejné TLS certifikáty nakupované přes komerční CA se chovají jinak než interní nebo ACME vydávání: objednávka je placená, nelze ji přes API zrušit, zpracovává se asynchronně a je vázaná na víceleté předplatné, které přežije každý jednotlivý certifikát. MazeVault proto s takovou objednávkou pracuje jako s dlouhotrvajícím procesem, ne jako s jedním voláním.
Odkud se berou nastavení (žádost → šablona → účet CA)¶
| Nastavení | Žádost (per certifikát) | Šablona certifikátu | Účet CA |
|---|---|---|---|
| Produkt (úroveň validace, limity wildcard/SAN) | ca_product_id |
ca_product_id |
výchozí product_code |
| Metoda ověření domény | dcv_method (dns, email, file) |
dcv_method |
dv_auth_method |
| Délka předplatného (roky) | order_years |
order_years |
1 rok |
| Technický kontakt | tech_contact |
tech_contact |
výchozí tech_* |
| Voucher | voucher |
— | voucher |
| Vlastník, oprávněná osoba, fakturace | — | — | owner_*, auth_*, invoice_* |
Žádost má přednost, šablona doplní to, co žádost nechá prázdné, a účet CA dodá obchodní údaje. Dialog Žádost o certifikát zobrazuje sekci Nastavení objednávky u CA přesně s těmi poli, která vydávající CA dovoluje přepsat; každé pole ukazuje hodnotu ze šablony jako svůj výchozí stav, takže prázdné pole vždy znamená „zdědit“.
Před odesláním objednávky se složená nastavení ověří proti katalogu produktů synchronizovanému z CA (nepodporovaná metoda validace, příliš mnoho SAN, wildcard na ne-wildcard produktu, předplatné delší, než produkt dovoluje). Žádost, kterou by CA odmítla, proto selže už při podání se srozumitelnou zprávou — nikdy jako placená objednávka. Složená nastavení včetně zdrojů se ukládají k žádosti (issuance_spec) a zobrazují v jejím detailu.
Roky předplatného nejsou platnost certifikátu
Od března 2026 platí veřejné TLS certifikáty nejvýše 200 dní. order_years je délka placené objednávky u SSLmarketu (1–6 let podle produktu). V rámci předplatného vydává CA navazující certifikáty sama — viz níže.
Asynchronní vydávání a pozorné čekání¶
- Podání — žádost je ve stavu
submitting_to_ca, dokud se objednávka zakládá. Pokud CA neodpoví jednoznačně (timeout, 5xx, restart), MazeVault neopakuje naslepo: dohledá objednávku podle přesného CSR a buď na ni naváže, nebo po ochranné lhůtě vrátí žádost do stavu schváleno. Pro jednu žádost nikdy nevznikne druhá objednávka. - Čekání — žádost je
submitted_to_ca; MazeVault se CA dotazuje s rostoucím intervalem (2 → 5 → 15 → 60 minut), dokud se stav na straně CA nemění, a interval resetuje, jakmile se změní. - Eskalace — když se objednávka nepohne déle, než určuje nastavení účtu CA Upozornit, když objednávka nepostoupí (hodin) (výchozí 24 h), MazeVault založí jeden incident, okomentuje DCV tiket (pokud existuje) a čeká dál. Placenou objednávku nikdy sám nevzdá.
- Vydání — certifikát se stáhne, uloží s
external_order_ida nasazení pokračuje jako u každého jiného certifikátu.
Ověření kontroly nad doménou (DCV)¶
CA před vydáním vyžaduje důkaz kontroly nad doménou. Jak se důkaz umístí, se rozhoduje pro každou objednávku:
| Situace | Co udělá MazeVault | Co uděláte vy |
|---|---|---|
DNS validace a účet CA má nastaveného DNS poskytovatele (dns_solver_type + dns_solver_config) |
Sám vytvoří TXT záznam _dnsauth.<doména>, počká na CA a záznam poté odstraní |
Nic |
| DNS/souborová validace a organizace má ticketing integraci (Jira) | Založí jeden tiket s přesným záznamem (název, typ, hodnota) a číslem objednávky; po validaci CA pokračuje automaticky; tiket zavře s komentářem | Přidáte záznam z tiketu do DNS nebo na web server |
| Ani jedno | Založí incident dcv_manual_action_required a zobrazí záznam v panelu DCV |
Přidáte záznam; MazeVault se dotazuje dál |
| E-mailová validace | Čeká na schvalovací e-mail; Znovu odeslat e-mail požádá CA o nové odeslání | Kliknete na odkaz v e-mailu od CA |
Po umístění záznamu není v MazeVaultu třeba nic potvrzovat — CA ověří, MazeVault si toho všimne a pokračuje.
Obnova certifikátu z předplatného (navazující certifikát)¶
Když má být certifikát vydaný v rámci objednávky SSLmarket obnoven, MazeVault nejprve prověří objednávku:
- Předplatné stále běží (nebo CA objednávku obnovila do navazující objednávky, nebo probíhá reissue): obnova přejde do
awaiting_ca_followup. Nová objednávka se nezakládá. Jakmile CA vydá navazující certifikát, MazeVault jej stáhne, ověří, že používá stejný veřejný klíč jako spravovaný certifikát (privátní klíč zůstává, úschova se dědí), provede preflight nasazení, nasadí, spustí post-instalační kroky a teprve poté označí původní certifikát jako nahrazený. Pokud se původní certifikát blíží expiraci a navazující se neobjevil, založí se jeden incidentsubscription_followup_overdue. - Navazující certifikát byl vydán s jiným klíčem (např. ruční reissue v portálu SSLmarket s novým CSR): MazeVault jej nemůže nasadit — obnova přejde do
manual_reviews incidentemsubscription_followup_key_mismatch. Buď objednávku znovu vydejte se spravovaným klíčem, nebo nový klíč importujte, nebo spusťte obnovu s volbou Založit u CA novou objednávku. - Předplatné končí s tímto certifikátem: založí se nová objednávka, jak je popsáno výše.
Certifikáty objevené z účtu CA nesou číslo objednávky také, takže se tato logika týká i adoptovaných certifikátů.
Revokace
API SSLmarketu revokuje pouze certifikáty DigiCert Client Premium (S/MIME). TLS certifikáty objednané přes SSLmarket se revokují v zákaznickém portálu SSLmarket; MazeVault tuto poznámku zobrazuje ve formulářích šablony i žádosti.
Stavy obnovy a jejich význam¶
| Stav | Význam | Vaše akce |
|---|---|---|
submitting_to_ca |
Objednávka se zakládá; při nejasném výsledku se dohledá podle CSR | Žádná |
submitted_to_ca |
Objednávka přijata; čeká se na CA | Žádná |
pending_dcv |
Čeká se na ověření domény (viz tabulka výše) | Podle způsobu umístění |
awaiting_ca_followup |
Předplatné běží; čeká se na navazující certifikát od CA | Žádná |
manual_review |
Automatické pokračování není bezpečné; viz incident | Rozhodnout: reissue / import klíče / nová objednávka |
deploying |
Certifikát přijat; nasazuje se — původní certifikát zůstává aktivní | Žádná |
failed s možností pokračovat |
Nasazení / post-instalace / předání selhalo na některých cílech; nic nebylo předáno. Dokud položka existuje, nová obnova se nespustí automaticky ani ručně (vznikla by druhá placená objednávka) | Opravte cíl a klikněte Pokračovat v obnově — znovu se nasadí jen selhané cíle; nebo položku explicitně Zrušte |
Související¶
- API pro certifikáty — API reference
- Správa tajemství — Správa tajemství
- Konfigurace TLS — Nastavení TLS
Architektura pipeline vydávání certifikátů¶
Následující diagram zobrazuje kompletní tok od požadavku v prohlížeči až po podepsaný certifikát pro všechny podporované typy CA.
Viz anglická verze dokumentace pro plný Mermaid diagram a tabulku architektonických rozhodnutí (2026-06-21): certificate-management (EN)
Klíčová opravena chyby (2026-06-21)¶
| Komponenta | Chyba | Oprava | Migrace |
|---|---|---|---|
mergeTemplates |
Alias ValidDays nebyl synchronizován po dědení → 1-denní certifikáty na Smallstep |
merged.ValidDays = child.ValidityDays |
— |
| Všichni CA providři | Čtou ValidDays (alias) místo ValidityDays (DB sloupec) |
effectiveDays := template.ValidityDays |
— |
ResolveTemplateForProject |
OverrideValidityDays v project_template_assignments nebyl nikdy aplikován |
Nová funkce ResolveTemplateForProject |
— |
IssueCertificate CA lookup |
UUID prohledáváno jen v organization_ca_accounts |
Dual-probe: organization_ca_accounts → fallback certificate_authorities |
— |
SubmitProjectCSR |
OrganizationID nebyl nastaven |
Ctení org_id z JWT kontextu |
— |
ACME FinalizeOrder |
strings.Contains pro ADCS pending — křehké, dead-end při schválení |
errors.As + pole adcs_request_id + 5-min poller |
000165 |
findOrderByCert |
LIMIT 500 full scan — revokace selhává u velkých tenantů |
JOIN podle sériového čísla | — |
getIntegrationByProvider |
Systémový first-match → únik klíčů mezi tenanty | Scope přes WithKeyOffloadOrgID(ctx, orgID) |
— |
| Azure KV reader path | Dvojité base64 kódování při načítání klíče | Dekodování base64 při načtení | — |