Files
proxdeploy/docs/issues/002-verschluesselung-server.md
florian.wildeandClaude Opus 5.5 48e2a5cb8f feat(server): Proxmox-Server verwalten mit Fingerprint-Pinning
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>
2026-10-12 09:35:10 +02:00

33 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# #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.