feat(cert-manager): Hersteller-ZIP, PKCS#7, eingefügter Text, Analysieren und Aufteilen

- ZIP wird an den Anfangsbytes erkannt und mit Grenzen geöffnet (eine Ebene, Verhältnis, Gesamtgröße, verschlüsselte Einträge)
- PKCS#7 als PEM und DER, auch für EC, über den ASN.1-Lauf
- Eingefügter PEM-Text als eigener Eintrag im Reiter Dateien
- Neue Reiter Analysieren und Aufteilen auf dem gemeinsamen Arbeitsbereich

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-09 15:15:59 +02:00
parent 30118a2401
commit 1554ae83c1
22 changed files with 1692 additions and 60 deletions
+45 -2
View File
@@ -1254,6 +1254,8 @@
"tabs": {
"files": "Files",
"filesWithCount": "Files ({count})",
"analyze": "Analyze",
"split": "Split",
"merge": "Merge"
},
"roles": {
@@ -1282,7 +1284,8 @@
"duplicate": "\"{name}\" is already in the list.",
"tooMany": "\"{name}\": the list is full with {max} files.",
"tooLarge": "\"{name}\" is larger than {size} MB.",
"totalTooLarge": "\"{name}\": together this would be more than {size} MB."
"totalTooLarge": "\"{name}\": together this would be more than {size} MB.",
"pasteTooLarge": "\"{name}\" is longer than {chars} characters."
},
"ignored": {
"unknown": "No certificate was recognised in it.",
@@ -1294,7 +1297,13 @@
"zipTooLarge": "The ZIP contains too much data and is not opened.",
"tooManyEntries": "The ZIP contains too many files and is not opened.",
"unsupportedKey": "This key type is not supported."
}
},
"pasteToggle": "Paste PEM text",
"pasteHint": "Paste text that starts with \"-----BEGIN\". Several blocks in a row are fine.",
"pasteLabel": "Pasted PEM text",
"pasteAdd": "Add",
"pastedLabel": "Pasted text {n}",
"originPaste": "Pasted text"
},
"errors": {
"generic": "The files could not be checked. Please try again.",
@@ -1318,6 +1327,40 @@
"goToFiles": "Go to the “Files” tab",
"basis": "{count, plural, one {Based on 1 file from the “Files” tab.} other {Based on # files from the “Files” tab.}}"
},
"analyze": {
"intro": "Everything recognised in your files: the chains first, then every certificate in detail. All times are shown in UTC, as in the certificate.",
"chainsTitle": "Chains",
"certificatesTitle": "Certificates",
"ignoredTitle": "Not used",
"nothingFound": "No certificate has been recognised in the files yet.",
"issuer": "Issued by",
"validity": "Valid",
"validRange": "{from} to {to}",
"names": "Valid for",
"key": "Key",
"keyRsa": "RSA, {bits} bit",
"keyEc": "EC, curve {curve}",
"serial": "Serial number",
"sha256": "SHA-256",
"sha1": "SHA-1",
"source": "Found in",
"valid": "Valid",
"expired": "Expired",
"expiresSoon": "Expires in {days} days",
"explain": {
"end-entity": "The actual certificate for your domain. This one belongs on the web server.",
"intermediate": "Vouches for your server certificate towards the browser. It is installed together with the server certificate (chain).",
"root": "The top certificate authority. Browsers and operating systems usually have it already."
}
},
"split": {
"intro": "You can download every recognised part on its own in its natural format, or all of them together as a ZIP.",
"nothingFound": "Nothing has been recognised yet that could be downloaded.",
"download": "Download",
"downloadFor": "Download \"{name}\"",
"downloadAll": "Download all as ZIP",
"zipFilename": "Certificates.zip"
},
"merge": {
"intro": "Tessera orders the server certificate, intermediate certificates and root certificate itself and checks that each certificate was really issued by the next one. The order of your files does not matter.",
"noCertificates": "No certificate has been recognised in the files yet. Add a certificate in the “Files” tab.",