PKI API
Die authentifizierte Management-API für die Cockpit-PKI — Zertifizierungsstellen, Zertifikate, Aussteller, Widerruf, Deployment, Discovery und Compliance — sowie die öffentlichen Protokollendpunkte, die Standardclients zum Enrollment und zur Prüfung des Zertifikatsstatus aufrufen.
Die PKI-API hat zwei Endpunktfamilien. Die Management-API (/api/pki/…) ist mit einer Cockpit-Benutzersitzung authentifiziert, auf Ihren Mandanten begrenzt und durch Operations.Pki.*-Berechtigungen gesteuert; sie erstellt und betreibt CAs, Zertifikate, Aussteller, Deployment-Ziele und Scanner. Die öffentlichen Protokollendpunkte (ACME, EST, SCEP, CMP, OCSP und CRL-Download) werden auf ihren eigenen Standardpfaden bereitgestellt und direkt von ACME-/EST-/SCEP-/CMP-Clients, OCSP-Respondern und Relying Parties aufgerufen — sie authentifizieren sich mit ihren eigenen Protokollmechanismen, nicht mit einem Cockpit-Token.
| Familie | Basispfad | Auth | Zweck |
|---|---|---|---|
| Management-API | /api/pki/… | Cockpit-Benutzersitzung (JWT), Operations.Pki.*-Berechtigungen | CAs, Zertifikate, Aussteller, Deployment und Discovery erstellen und betreiben |
| Öffentliche Protokollendpunkte | Root-Pfade wie /ocsp/…, /scep/…, /cmp/…, .well-known/est/… sowie das ACME-Verzeichnis | Jeder Protokollstandard (ACME-Kontoschlüssel, EST-/SCEP-/CMP-Transport, einfaches HTTP für OCSP/CRL) | Enrollment- und Zertifikatsstatusprotokolle, die Clients direkt sprechen |
Zeilen, deren Zweck mit (öffentlich) gekennzeichnet ist, sind ohne Cockpit-Sitzung erreichbar — sie sind die Standard-Protokolloberflächen. Alle anderen Zeilen sind Management-Routen und erfordern die jeweilige Operations.Pki.*-Berechtigung.
Zertifizierungsstellen
Root-, Zwischen- und externe CAs mit einem vollständig auditierten Lebenszyklus — suspendieren, reaktivieren, widerrufen (einfach oder kaskadiert), archivieren — sowie Chain, Auswirkungsvorschau und CRL. Aktionen sind den Operations.Pki.CAs.*-Berechtigungen zugeordnet.
| Methode + Pfad | Zweck |
|---|---|
GET · POST /api/pki/cas | CAs auflisten · eine Root-CA erstellen |
GET · PUT /api/pki/cas/{id} | Eine CA abrufen · aktualisieren |
POST /api/pki/cas/{id}/intermediate | Eine Zwischen-CA erstellen |
GET /api/pki/cas/{id}/chain | Die CA-Zertifikatskette abrufen |
GET /api/pki/cas/{id}/lifecycle/impact | Den Auswirkungsradius des Lebenszyklus vorschauen |
POST /api/pki/cas/{id}/lifecycle/suspend · /reactivate | Suspendieren · reaktivieren |
POST /api/pki/cas/{id}/revoke | Widerrufen (einfach) |
POST /api/pki/cas/{id}/lifecycle/revoke | Kaskadierter Widerruf (CA + Sub-CAs + ausgestellte Zertifikate) |
POST /api/pki/cas/{id}/lifecycle/archive · /unarchive | Archivieren · aus dem Archiv holen |
GET · POST /api/pki/cas/{id}/crl | Die CA-CRL abrufen · generieren |
Rufen Sie zuerst die lifecycle/impact-Route auf — sie liefert einen schreibgeschützten Bericht darüber, welche Sub-CAs und Zertifikate ein kaskadierter Widerruf genau betreffen würde.
Zertifikate & Anträge
Zertifikate werden direkt unter einer CA ausgestellt oder über den Antrags-Workflow (einreichen, dann genehmigen / ablehnen). Beide werden durch die PKI-Berechtigungen zur Zertifikatsausstellung gesteuert.
| Methode + Pfad | Zweck |
|---|---|
POST /api/pki/cas/{id}/certificates | Ein Zertifikat unter einer CA ausstellen |
/api/pki/requests | Zertifikatsantrags-Workflow — einreichen, dann genehmigen / ablehnen |
Die Ausstellung unter einer CA ist POST /api/pki/cas/{id}/certificates zugeordnet; der Antrags-Workflow verwendet /api/pki/requests mit Genehmigen-/Ablehnen-Aktionen. Siehe Ein Zertifikat erstellen.
Aussteller
Ein Aussteller ist ein konfiguriertes vorgelagertes System (zum Beispiel ein ACME-Konto oder eine externe CA), das die Plattform ansteuert, um Zertifikate zu erhalten. Aussteller können getestet, aktiviert/deaktiviert und zur Ausführung des Zertifikatslebenszyklus verwendet werden.
| Methode + Pfad | Zweck |
|---|---|
GET · POST /api/pki/issuers | Aussteller auflisten · erstellen |
GET · PUT · DELETE /api/pki/issuers/{id} | Einen Aussteller verwalten |
POST /api/pki/issuers/{id}/test | Die Verbindung testen |
PUT /api/pki/issuers/{id}/status | Status aktualisieren |
POST /api/pki/issuers/{id}/register | Ein ACME-Konto registrieren |
POST /api/pki/issuers/{id}/issue · /renew · /revoke | Zertifikatslebenszyklus über den Aussteller |
Enrollment-Protokolle
Jedes Protokoll hat eine Admin-Oberfläche auf der Management-API (Konfiguration, Profile, Aliase, Status) und eine öffentliche Protokolloberfläche auf Standardpfaden, die Clients direkt sprechen. Öffentliche Zeilen sind mit (öffentlich) gekennzeichnet.
ACME (RFC 8555)
Ein vollständiger ACME-Server pro CA: Directory, New-Nonce, New-Account, New-Order, Authorization, Challenge, Finalize, Zertifikatsdownload und Revoke-Cert. Richten Sie einen beliebigen ACME-Client (oder den ACME-Issuer von cert-manager) auf die ACME-Directory-URL der CA.
| Methode + Pfad | Zweck |
|---|---|
GET /api/pki/acme/{ca_id}/config | ACME-Admin-Konfiguration |
…/acme/{ca_id}/directory | ACME-Directory (öffentlich) |
…/new-nonce · /new-acct · /new-order | Konto- und Order-Ablauf (öffentlich) |
…/authz/{id} · /challenge/{id} · /order/{id}/finalize | Authorization, Challenge, Finalize (öffentlich) |
…/cert/{id} · /revoke-cert | Herunterladen und widerrufen (öffentlich) |
EST (RFC 7030)
Enrollment over Secure Transport: cacerts, simpleenroll, simplereenroll, serverkeygen und csrattrs, bereitgestellt unter dem Standardpfad .well-known/est/.
| Methode + Pfad | Zweck |
|---|---|
GET /api/pki/est/{ca_id}/cacerts | CA-Zertifikate |
.well-known/est/{slug}/* | simpleenroll / simplereenroll / serverkeygen / csrattrs (öffentlich) |
GET · PUT /api/pki/est/{ca_id}/config · /enrollments | EST-Admin |
SCEP (RFC 8894)
Simple Certificate Enrollment Protocol mit konfigurierbaren Profilen. Der öffentliche pkiclient.exe-Endpunkt bedient GET/POST für klassische SCEP-Clients.
| Methode + Pfad | Zweck |
|---|---|
GET · POST /api/pki/scep/profiles · /profiles/{id} | SCEP-Profile verwalten |
…/{profile_id}/status | Enrollment-Status |
GET · POST /scep/{slug}/pkiclient.exe | SCEP-Protokoll (öffentlich) |
CMP (RFC 4210 / 9483)
Certificate Management Protocol mit benannten Aliasen, Transaktionsverfolgung und Metriken pro Alias. Clients senden POST an den CMP-Nachrichtenendpunkt.
| Methode + Pfad | Zweck |
|---|---|
GET · POST /api/pki/cmp/aliases · /aliases/{id} | CMP-Aliase verwalten |
…/aliases/{id}/transactions · /transactions/{id} | Transaktionsverlauf |
POST /cmp/{alias} | CMP-Protokoll (öffentlich) |
Kubernetes cert-manager
DuoKey als externen Issuer für cert-manager registrieren: cert-manager sendet CSRs an den Sign-Endpunkt, und DuoKey gibt signierte Zertifikate zurück, sodass von Kubernetes verwaltete Schlüssel bei Ihrer CA enrolliert bleiben.
| Methode + Pfad | Zweck |
|---|---|
POST · GET /api/pki/certmanager/issuers | Externe Issuer registrieren / auflisten |
…/issuers/{id}/status | Issuer-Status |
/api/pki/certmanager/sign | Eine cert-manager-CSR signieren |
/api/pki/certmanager/healthz | Health-Check |
KMIP-2.1-Server
DuoKey kann als KMIP-Server agieren und Schlüssel-/Zertifikatsobjekte und -operationen für KMIP-Clients bereitstellen.
| Methode + Pfad | Zweck |
|---|---|
GET · POST /api/pki/kmip-server/{endpoint_id}/objects | KMIP-Objekte |
…/operations · /stats · /test | Operationen, Statistiken, Konnektivitätstest |
Einheitlicher Endpunkt-Lebenszyklus
Alle Protokollendpunkte (EST / SCEP / ACME / CMP / KMIP) teilen sich einen gemeinsamen Endpunkt-Lebenszyklus — bereitstellen, starten, pausieren, stoppen — mit Health und Metriken, sodass Sie sie einheitlich betreiben können.
| Methode + Pfad | Zweck |
|---|---|
GET · POST /api/endpoints · /endpoints/{id} | Protokollendpunkte verwalten |
…/{id}/start · /pause · /stop | Lebenszyklussteuerung |
…/{id}/health · /metrics | Health und Metriken |
Widerruf (CRL & OCSP)
Zertifikate und CAs werden mit einem Standardgrund nach RFC 5280 widerrufen. Ein Widerruf wirkt sich sofort auf beide Veröffentlichungskanäle aus: die CRL der CA und ihren OCSP-Responder.
CRL — Certificate Revocation Lists
Jede CA generiert eine signierte CRL im DER-Format, veröffentlicht an der in ausgestellten Zertifikaten enthaltenen CRL-Distributions-URL. CRLs können bei Bedarf oder erzwungen generiert und über CRL-Info geprüft werden. Der DER-Download ist öffentlich.
| Methode + Pfad | Zweck |
|---|---|
GET /api/pki/crls | CRLs auflisten |
GET /api/pki/crl/{ca_id}/info | CRL-Metadaten (Nummer, This-/Next-Update) |
POST /api/pki/crl/{ca_id}/generate | Die CRL erzwungen generieren |
GET /api/pki/crl/{ca_id} | Die DER-CRL herunterladen (öffentlich) |
GET · POST /api/pki/cas/{id}/crl | Eine CA-CRL abrufen · generieren |
OCSP — Online Certificate Status Protocol
Für den Echtzeitstatus ohne Download einer vollständigen Liste kann jede CA einen OCSP-Responder betreiben. Responder haben einen eigenen Lebenszyklus (bereitstellen, starten, pausieren, stoppen) sowie Health und Metriken und verwenden ein dediziertes OCSP-Signer-Zertifikat. Das Responder-Protokoll und sein Health-Check sind öffentlich.
| Methode + Pfad | Zweck |
|---|---|
POST · GET /ocsp/{slug} | OCSP-Responder-Protokoll (öffentlich) |
GET /ocsp/{slug}/health | Responder-Health (öffentlich) |
GET · POST /api/ocsp/responders · /responders/{id} | Responder verwalten |
…/responders/{id}/start · /pause · /stop | Responder-Lebenszyklus |
…/responders/{id}/health · /metrics | Health und Metriken |
Deployment
Ausgestellte Zertifikate auf Live-Ziele übertragen — F5- und Fortinet-Appliances, agentengesteuerte Windows-Ziele (Microsoft IIS, Active Directory / LDAPS, Windows CAPI), SSH-erreichbare Ziele (Nginx, Java Keystore) und andere generische Web-/App-Ziele (Azure App Service, Entra ID, Apache HTTPD) — mit Deploy-Jobs, Rollback, wiederverwendbaren Verbindungsprofilen und ServiceNow-CMDB-Synchronisierung.
| Methode + Pfad | Zweck |
|---|---|
GET · POST · PATCH · DELETE /api/pki/deploy/f5/targets | F5-Ziele verwalten |
POST /api/pki/deploy/f5/deploy · /f5/deploy-cert-only | Auf F5 bereitstellen |
GET · POST · PATCH · DELETE /api/pki/deploy/fortinet/targets | Fortinet-Ziele verwalten |
POST /api/pki/deploy/fortinet/deploy · /fortinet/jobs/{id}/rollback | Auf Fortinet bereitstellen · zurückrollen |
GET · POST · PATCH · DELETE /api/pki/deploy/windows/targets · /targets/{id} | Agentengesteuerte Ziele verwalten (windows_iis, active_directory_ldaps, capi) |
POST /api/pki/deploy/windows/deploy | Einen Deploy-Job in die Warteschlange stellen, den der gebundene Agent abholt und ausführt |
POST /api/pki/deploy/windows/jobs/{id}/rollback | Einen Rollback-Job in die Warteschlange stellen |
GET /api/pki/orchestrator/jobs · POST /jobs/{id}/report | Job-Abholung und Ergebnismeldung durch den Agenten — Auth per Agent-Schlüssel, keine Cockpit-Session-Route |
GET · POST · PUT · DELETE /api/pki/deploy/targets | Generische Ziele (Azure App Service, Entra ID, Apache HTTPD, Nginx, Java Keystore) |
POST /api/pki/deploy/targets/{id}/deploy-entra · /deploy-app-service · /deploy-ssh | Auf Entra ID · Azure App Service · ein SSH-Ziel (Nginx / Java Keystore) bereitstellen |
POST /api/pki/deploy/targets/{id}/test | Konnektivität/Anmeldedaten eines Ziels vor der Bereitstellung prüfen |
GET /api/pki/deploy/jobs · /jobs/{id} | Deploy-Jobs auflisten / abrufen |
POST /api/pki/deploy/jobs/{id}/rollback | Einen Deploy-Job zurückrollen |
GET · POST · PUT · DELETE /api/pki/connections · /connections/{id} | Wiederverwendbare Anmeldedaten-Verbindungsprofile |
/api/pki/connectors/servicenow/* | ServiceNow-CMDB-Inventar / Ablauf-Synchronisierung |
Discovery & Compliance
Zertifikate im Netzwerk mit Scannern und installierten Agents finden, entdeckte Zertifikate in das Inventar importieren und pro Zertifikat SSL/TLS-Audits und Compliance-Bewertungen gegen Frameworks oder Ihre eigenen Mandantenrichtlinien durchführen.
| Methode + Pfad | Zweck |
|---|---|
GET · POST /api/pki/scanners · /scanners/{id} | Scanner verwalten (Scan / Aktivieren / Deaktivieren / Jobs) |
GET /api/pki/scanners/certificates · /certificates/{id} | Entdeckte Zertifikate durchsuchen |
POST /api/pki/scanners/certificates/{id}/import | Ein entdecktes Zertifikat importieren |
GET · POST /api/pki/scanners/agents · /agents/register | Scanner-Agent-Flotte |
…/agents/{id}/rotate-key · /revoke | Agent-Schlüsselrotation / -widerruf |
GET · POST /api/pki/scanner/targets · /results · /summary | Scan-Ziele, Ergebnisse und Zusammenfassung |
GET · POST /api/pki/scanner/certs/{id}/ssl-audit | Ein Zertifikats-SSL-Audit ausführen / anzeigen |
…/ssl-audit/history · /run · /compliance | Audit-Verlauf, Auslösen, Compliance-Ergebnis |
GET · POST /api/pki/scanner/ssl-compliance/frameworks | Compliance-Frameworks |
/api/pki/scanner/compliance/* | Mandanten-Compliance-Richtlinien und -Bewertung |