refactor(cert-manager): einheitlicher Name Zertifikatsmanager
Seitenleiste/Marktplatz (Seed), Seitentitel, Anleitungen, Kommentare und unveroeffentlichter CHANGELOG heissen jetzt Zertifikatsmanager. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Fixtures des Zertifikat-Managers
|
||||
# Fixtures des Zertifikatsmanagers
|
||||
|
||||
Nur Testdaten (quick-261009-ikt). Keine echten Zertifikate, keine echten Schluessel.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Test-only PKI for quick 261009-ikt (Zertifikat-Manager).
|
||||
# Test-only PKI for quick 261009-ikt (Zertifikatsmanager).
|
||||
# Erzeugt alle Fixtures dieses Ordners mit OpenSSL (>= 3.4: -legacy, -not_before).
|
||||
# Die Schluessel der CAs liegen nur in einem mktemp-Ordner, den ein trap loescht;
|
||||
# committet werden nur Schluessel der Server-Zertifikate.
|
||||
|
||||
@@ -4,7 +4,7 @@ import { spkiDerOf } from './cert-keys';
|
||||
import type { CertItem, ChainGap, ChainInfo, CsrItem, KeyItem } from './cert-types';
|
||||
|
||||
/**
|
||||
* Kettenbau des Zertifikat-Managers (quick-261009-ikt, D-18). Reine Funktionen, kein Netz.
|
||||
* Kettenbau des Zertifikatsmanagers (quick-261009-ikt, D-18). Reine Funktionen, kein Netz.
|
||||
*
|
||||
* Aussteller eines Zertifikats C ist jedes andere Zertifikat I der Menge mit
|
||||
* `C.checkIssued(I) && C.verify(I.publicKey)`: checkIssued vergleicht Namen, Schluesselkennungen
|
||||
|
||||
@@ -5,7 +5,7 @@ import { safeBaseName } from './cert-names';
|
||||
import type { CsrItem, ItemSource } from './cert-types';
|
||||
|
||||
/**
|
||||
* Zertifikatsanfragen (CSR) des Zertifikat-Managers (quick-261009-ikt, D-05, D-16).
|
||||
* Zertifikatsanfragen (CSR) des Zertifikatsmanagers (quick-261009-ikt, D-05, D-16).
|
||||
*
|
||||
* Die CSR-Leser von forge koennen nur RSA. Darum wird der ASN.1-Aufbau selbst gelesen
|
||||
* (CertificationRequestInfo: Version, Inhaber, oeffentlicher Schluessel, Attribute) und der
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
} from './cert-types';
|
||||
|
||||
/**
|
||||
* Private Schluessel des Zertifikat-Managers (quick-261009-ikt, D-05, D-11, D-16).
|
||||
* Private Schluessel des Zertifikatsmanagers (quick-261009-ikt, D-05, D-11, D-16).
|
||||
*
|
||||
* Alles laeuft ueber node:crypto (`createPrivateKey`): PKCS#1, PKCS#8 und SEC1, als PEM und als DER,
|
||||
* unverschluesselt, als verschluesseltes PKCS#8 und klassisch verschluesselt (Proc-Type), fuer RSA,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { ModuleChangelog } from '../module-registry/module-changelog';
|
||||
|
||||
/**
|
||||
* Änderungen am Modul Cert Manager, neueste Version zuerst (quick-261008-w5w).
|
||||
* Änderungen am Modul Zertifikatsmanager, neueste Version zuerst (quick-261008-w5w).
|
||||
* Die Version in der Seed-Datei kommt ausschließlich von hier; Regeln siehe
|
||||
* docs/anleitung-entwicklung.md, Abschnitt „Modulversion und Modul-Changelog pflegen“.
|
||||
*/
|
||||
@@ -35,6 +35,11 @@ export const CERT_MANAGER_CHANGELOG: ModuleChangelog = [
|
||||
de: 'Fehlt ein Zwischenzertifikat, holt „Fehlendes Zertifikat holen“ es auf Knopfdruck beim Aussteller.',
|
||||
en: 'If an intermediate certificate is missing, “Fetch missing certificate” gets it from the issuer at the click of a button.',
|
||||
},
|
||||
{
|
||||
kind: 'changed',
|
||||
de: 'Das Modul heißt jetzt einheitlich „Zertifikatsmanager“ (vorher „Cert Manager“ in der Seitenleiste).',
|
||||
en: 'The module now has one consistent name everywhere (previously “Cert Manager” in the sidebar).',
|
||||
},
|
||||
{
|
||||
kind: 'fixed',
|
||||
de: 'Beim Zusammenführen ersetzt eine zweite Datei nicht mehr die erste.',
|
||||
|
||||
@@ -68,7 +68,7 @@ export function repairFileName(name: string): string {
|
||||
}
|
||||
|
||||
/**
|
||||
* CertManagerController: Zertifikat-Manager (quick-261009-ikt, D-14).
|
||||
* CertManagerController: Zertifikatsmanager (quick-261009-ikt, D-14).
|
||||
*
|
||||
* Zustandslos: nichts wird gespeichert, Passwoerter und Schluessel kommen nie in ein Log
|
||||
* (kein Logger-Aufruf mit Anfrageinhalt; das Request-Log kennt nur Pfad und Status).
|
||||
|
||||
@@ -16,7 +16,7 @@ export async function seedCertManagerModule(
|
||||
): Promise<void> {
|
||||
await moduleRegistryService.seedModule({
|
||||
slug: 'cert-manager',
|
||||
name: 'Cert Manager',
|
||||
name: 'Zertifikatsmanager',
|
||||
// Die Version kommt ausschließlich aus dem Changelog (quick-261008-w5w).
|
||||
version: latestVersion(CERT_MANAGER_CHANGELOG),
|
||||
category: 'security-tools',
|
||||
|
||||
@@ -29,7 +29,7 @@ import { expandZip, isZip } from './zip-expand';
|
||||
export { describeKey, keyIdOf, sha256Hex };
|
||||
|
||||
/**
|
||||
* Der eine Parser des Zertifikat-Managers (quick-261009-ikt, D-08, D-16).
|
||||
* Der eine Parser des Zertifikatsmanagers (quick-261009-ikt, D-08, D-16).
|
||||
*
|
||||
* Alles ueber Zertifikate und Schluessel entscheidet node:crypto (RSA und EC, PEM und DER).
|
||||
* node-forge wird nur fuer PKCS#12 und als allgemeiner ASN.1-Leser/-Schreiber genutzt; die
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Dateinamen-Helfer des Zertifikat-Managers. Eigene Datei, damit cert-model.ts und cert-output.ts
|
||||
* Dateinamen-Helfer des Zertifikatsmanagers. Eigene Datei, damit cert-model.ts und cert-output.ts
|
||||
* einander nicht gegenseitig einbinden muessen.
|
||||
*/
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
} from './cert-types';
|
||||
|
||||
/**
|
||||
* Ausgabe-Bausteine des Zertifikat-Managers (quick-261009-ikt, D-19).
|
||||
* Ausgabe-Bausteine des Zertifikatsmanagers (quick-261009-ikt, D-19).
|
||||
* Jeder Inhalt in jedem Format laeuft durch die eine Funktion buildOutput. Die Reihenfolge baut die API
|
||||
* immer selbst aus den gesendeten Zertifikaten (buildChains); eine vom Browser mitgeschickte Reihenfolge
|
||||
* wird nie uebernommen. Schluessel und Passwoerter werden nur verarbeitet, nie gespeichert oder
|
||||
|
||||
@@ -4,7 +4,7 @@ import { KdfTooExpensiveError, RequestBudget } from './cert-budget';
|
||||
import { MAX_PASSWORDS } from './cert-keys';
|
||||
|
||||
/**
|
||||
* PKCS#12 (.pfx/.p12) des Zertifikat-Managers (quick-261009-ikt, D-20).
|
||||
* PKCS#12 (.pfx/.p12) des Zertifikatsmanagers (quick-261009-ikt, D-20).
|
||||
*
|
||||
* Lesen laeuft ueber forge (`pkcs12FromAsn1`): OpenSSL-3-Standard (AES-256, SHA-256), das
|
||||
* kompatible 3DES-Format und das alte RC2-Format werden gelesen. forge kennt aber nur RSA:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { HttpException } from '@nestjs/common';
|
||||
|
||||
/**
|
||||
* Vertrag des Zertifikat-Managers (quick-261009-ikt, D-15, D-19, D-24).
|
||||
* Vertrag des Zertifikatsmanagers (quick-261009-ikt, D-15, D-19, D-24).
|
||||
* Die Typen werden 1:1 in apps/web/.../cert-manager/actions.ts gespiegelt.
|
||||
* Alles hier ist zustandslos: Tessera speichert weder Dateien noch Schluessel noch Passwoerter.
|
||||
*/
|
||||
|
||||
@@ -4,7 +4,7 @@ import { cleanSourcePath } from './cert-names';
|
||||
import type { IgnoredEntry } from './cert-types';
|
||||
|
||||
/**
|
||||
* ZIP-Erkennung und -Entpacken des Zertifikat-Managers (quick-261009-ikt, D-17).
|
||||
* ZIP-Erkennung und -Entpacken des Zertifikatsmanagers (quick-261009-ikt, D-17).
|
||||
*
|
||||
* Regeln:
|
||||
* - Ein ZIP erkennt man an den Anfangsbytes (PK\x03\x04 oder PK\x05\x06), nie an der Endung.
|
||||
|
||||
@@ -14,7 +14,7 @@ export type HttpApp = Pick<INestApplication, 'use' | 'useGlobalPipes' | 'enableC
|
||||
* Gemeinsame HTTP-Einrichtung der API (aus main.ts, damit die Reihenfolge testbar ist).
|
||||
*
|
||||
* Reihenfolge der Schichten bei Express: Anfragelog, Cookies, CORS, dann der eigene JSON-Leser
|
||||
* fuer POST build des Zertifikat-Managers. Der Leser muss HINTER enableCors stehen (Review WR-01):
|
||||
* fuer POST build des Zertifikatsmanagers. Der Leser muss HINTER enableCors stehen (Review WR-01):
|
||||
* seine Fehlerantworten 413 und 400 entstehen, bevor Nests Schichten laufen, und ohne vorherige
|
||||
* CORS-Schicht blockiert der Browser sie im Entwicklungsaufbau mit getrennten Ursprungsadressen
|
||||
* (die Oberflaeche sieht dann nur einen Netzwerkfehler statt tooLarge / invalidInput).
|
||||
@@ -41,7 +41,7 @@ export function configureHttp(app: HttpApp, corsOrigin: string): void {
|
||||
credentials: true,
|
||||
});
|
||||
|
||||
// Eigene JSON-Grenze (512 KiB) nur fuer POST build des Zertifikat-Managers, nach CORS und vor
|
||||
// Eigene JSON-Grenze (512 KiB) nur fuer POST build des Zertifikatsmanagers, nach CORS und vor
|
||||
// Nests globalem Leser (quick-261009-ikt D-26, WR-01)
|
||||
app.use(CERT_BUILD_ROUTE, certBuildJsonBody, certBuildBodyErrors);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user