Server lassen sich anlegen, prüfen, bearbeiten und löschen. Proxmox liefert ab Werk ein selbst signiertes Zertifikat; der Admin sieht es vor dem Speichern und bestätigt den SHA-256-Fingerprint. Der Pin wird in einem eigenen undici-Connector geprüft, sodass eine fremde Gegenstelle das Token nie zu sehen bekommt. Weder Prüfung noch Pin ist im Schema, im Client und per CHECK ausgeschlossen. Fehler von Proxmox werden zu Ursache und Hinweis; bei 403 nennt der Hinweis das fehlende Recht samt Pfad. Getestet gegen einen HTTPS-Mock und im gebauten Stand auf Desktop und 390 px. Closes #002 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.8 KiB
Markdown
33 lines
1.8 KiB
Markdown
# #002 Server-Verwaltung und Verschlüsselung
|
||
**Status:** erledigt
|
||
**Meilenstein:** v0.1.0
|
||
**Labels:** feature, sicherheit
|
||
**Geschätzt:** 6 h **Tatsächlich:** 0 h 11 min
|
||
|
||
## Ziel
|
||
Proxmox-Server anlegen, bearbeiten, löschen; Geheimnisse verschlüsselt.
|
||
|
||
## Aufgaben
|
||
- [x] AES-256-GCM-Helfer mit Versionspräfix, Tests (falscher Schlüssel, manipulierte Daten) – mit #001
|
||
- [x] Modell `Server`, Services, REST `/api/v1/server`, Formular mit Token-ID/Secret
|
||
- [x] TLS: Fingerprint holen (`POST /server/pruefen`), anzeigen, bestätigen, pinnen
|
||
- [x] Proxmox-Client mit undici-Agent und Fingerprint-Vergleich, UPID-Warten
|
||
- [x] SSH optional: Schlüsselpaar erzeugen, Einzeiler anzeigen (Host-Key-Pin folgt mit dem SSH-Test in #003)
|
||
- [x] Protokolleintrag je Änderung (geänderte Felder, nie Werte von Geheimnissen)
|
||
- [x] Server-Umschalter in der Seitenleiste, Serverliste auf der Übersicht
|
||
|
||
## Akzeptanzkriterien
|
||
- [x] Secret erscheint nie in API-Antworten, Protokoll oder Logs (Test)
|
||
- [x] Falscher Fingerprint → klare Fehlermeldung, Verbindung getrennt **bevor** das Token gesendet wird (Test)
|
||
- [x] Playwright: Anlegen gegen Proxmox-Mock mit selbst signiertem Zertifikat, Desktop und 390 px
|
||
|
||
## Abhängigkeiten
|
||
#001
|
||
|
||
## Notizen / Entscheidungen
|
||
- **TLS-Sitzungs-Cache aus:** eine wiederaufgenommene TLS-Sitzung schickt kein Zertifikat, der Pin wäre nicht prüfbar.
|
||
- **„Weder TLS-Prüfung noch Pin“ ist unmöglich** – im Schema, im Client und als CHECK in der Datenbank.
|
||
- **Adresse ohne Schema/Port** wird zu `https://host:8006` ergänzt.
|
||
- **ssh2 ohne native Beschleuniger** (`allowBuilds: false`): reines JavaScript reicht, kein Compiler im Image.
|
||
- Proxmox schreibt Fehlermeldungen in die HTTP-Statuszeile; `Permission check failed (/pfad, Recht)` wird zu einem Hinweis mit Recht und Pfad.
|