feat(cert-manager): alle Ausgabeformate, Konvertieren, Bundle und PFX

- build liefert jeden Inhalt in jedem Format: Einzelzertifikat (PEM, DER, PKCS#7 .p7b/.p7c), Fullchain und Nur Kette auch als PKCS#7, Zertifikat und Schlüssel in einer PEM-Datei, PFX, Schlüssel (PKCS#8, klassisch, DER, optional mit Passwort) und CSR (PEM, DER)
- PKCS#7 von Hand aus ASN.1 gebaut, jedes Zertifikat mit seinen eigenen Bytes (RSA und EC)
- PFX schreiben für RSA und EC über einen begrenzten, im finally zurückgesetzten forge-Austausch; Kompatibel (3DES/SHA-1, Vorgabe) oder Modern (AES-256)
- Schlüssel und Passwörter nur in der Anfrage, nie in Antwort, Fehlertext oder Log; falscher Schlüssel: keyMismatch, kein Schlüssel: keyMissing, ohne Passwort: passwordRequired
- Reiter Konvertieren für Zertifikat, Schlüssel und Anfrage; Zusammenführen mit Kettenformat, Zertifikat und Schlüssel sowie PFX (Passwort doppelt, Verschlüsselung wählbar)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-09 15:46:43 +02:00
parent fcac0a3bfd
commit 65a1dca80f
18 changed files with 1877 additions and 47 deletions
+51 -2
View File
@@ -1256,7 +1256,8 @@
"filesWithCount": "Dateien ({count})",
"analyze": "Analysieren",
"split": "Aufteilen",
"merge": "Zusammenführen"
"merge": "Zusammenführen",
"convert": "Konvertieren"
},
"roles": {
"end-entity": "Serverzertifikat",
@@ -1398,7 +1399,21 @@
"downloadFullchain": "Fullchain herunterladen",
"downloadChain": "Nur Kette herunterladen",
"busy": "Wird erstellt …",
"chainNeedsIssuer": "Für „Nur Kette“ fehlt ein Zwischenzertifikat. Fügen Sie es im Reiter „Dateien“ hinzu."
"chainNeedsIssuer": "Für „Nur Kette“ fehlt ein Zwischenzertifikat. Fügen Sie es im Reiter „Dateien“ hinzu.",
"formatLabel": "Format der Kette",
"formats": {
"pem": "PEM (.pem)",
"p7b": "PKCS#7 (.p7b)",
"p7c": "PKCS#7, binär (.p7c)"
},
"bundleTitle": "Zertifikat und Schlüssel",
"bundleHint": "Eine einzige PEM-Datei mit Serverzertifikat, Zwischenzertifikaten und dem privaten Schlüssel. Bewahren Sie sie sicher auf.",
"downloadBundle": "Zertifikat und Schlüssel (eine PEM-Datei)",
"bundleNeedsKey": "Dazu liegt noch kein passender privater Schlüssel vor. Fügen Sie ihn im Reiter „Dateien“ hinzu.",
"pfxTitle": "PFX-Datei",
"pfxIntro": "Eine passwortgeschützte Datei mit Zertifikaten und Schlüssel, wie sie Windows, IIS und viele Geräte erwarten.",
"pfxNoKey": "Ohne passenden Schlüssel enthält die PFX-Datei nur die Zertifikate.",
"downloadPfx": "PFX-Datei herunterladen"
},
"chain": {
"issuedBy": "Ausgestellt von {name}",
@@ -1411,6 +1426,40 @@
"passwordInput": {
"show": "Passwort anzeigen",
"hide": "Passwort verbergen"
},
"pfx": {
"password": "PFX-Passwort",
"repeat": "Passwort wiederholen",
"mismatch": "Die beiden Passwörter stimmen nicht überein.",
"encryption": "Verschlüsselung",
"compat": "Kompatibel (auch ältere Windows-Server)",
"modern": "Modern (AES-256)",
"modernHint": "Ältere Windows-Server, etwa Windows Server 2016, können die moderne Verschlüsselung oft nicht öffnen. Im Zweifel wählen Sie „Kompatibel“."
},
"convert": {
"intro": "Wandeln Sie ein einzelnes Teil Ihrer Dateien in ein anderes Format um.",
"nothingFound": "Es wurde noch nichts erkannt, das sich umwandeln ließe.",
"item": "Was soll umgewandelt werden?",
"format": "Zielformat",
"groupCertificates": "Zertifikate",
"groupKeys": "Private Schlüssel",
"groupCsrs": "Zertifikatsanfragen",
"formats": {
"certPem": "PEM (.crt)",
"certDer": "DER (.cer)",
"p7b": "PKCS#7 (.p7b)",
"p7c": "PKCS#7, binär (.p7c)",
"pkcs8": "PKCS#8 (.key)",
"traditional": "Traditionell (PKCS#1 für RSA, SEC1 für EC)",
"pkcs8Der": "PKCS#8, binär (.key.der)",
"csrPem": "PEM (.csr)",
"csrDer": "DER (.csr.der)"
},
"keyNote": "Der Schlüssel wird nur für die Umwandlung an Tessera gesendet und nirgends gespeichert.",
"protectKey": "Schlüssel mit Passwort schützen",
"keyPassword": "Passwort für den Schlüssel",
"download": "Herunterladen",
"busy": "Wird erstellt …"
}
},
"tenderRadar": {