generated from Dicken/dickendock
HTTPS: eigene lokale Root-CA statt externem DuckDNS/Let's Encrypt
This commit is contained in:
@@ -201,3 +201,34 @@ Geräte):
|
||||
> validiert (`nginx -t` erfolgreich), echter TLS-Handshake gegen den
|
||||
> laufenden Server durchgeführt und geprüft, dass das ausgelieferte
|
||||
> Zertifikat die korrekte IP als Subject Alternative Name trägt.
|
||||
|
||||
## HTTPS-Revision: eigene lokale Root-CA statt DuckDNS
|
||||
|
||||
Nutzer-Feedback: "Will nix externes, soll auch nur lokal laufen" – die
|
||||
DuckDNS/Let's-Encrypt-Lösung wurde daher wieder entfernt und durch eine
|
||||
komplett offline funktionierende Variante ersetzt.
|
||||
|
||||
- `apps/frontend/docker-entrypoint.sh` erzeugt beim ersten Containerstart
|
||||
eine eigene Root-CA (`LaunchPad Local CA`, `CA:TRUE`, 10 Jahre gültig) und
|
||||
signiert damit ein Server-Zertifikat (`CA:FALSE`, korrekte SAN je nach
|
||||
`LAUNCHPAD_HOST`) – keinerlei externe Dienste beteiligt
|
||||
- CA + Server-Zertifikat liegen im neuen Docker-Volume `launchpad-certs`
|
||||
(statt im Container-Dateisystem) – bleiben dadurch über Neustarts und
|
||||
`--build` stabil. Ändert sich nur `LAUNCHPAD_HOST`, wird ausschließlich das
|
||||
Server-Zertifikat neu ausgestellt, die CA (und damit bereits erteiltes
|
||||
Gerätevertrauen) bleibt unangetastet
|
||||
- Root-CA wird unter `http://<host>:8080/ca.crt` zum Download bereitgestellt
|
||||
(`nginx-locations.conf`, korrekter MIME-Type `application/x-x509-ca-cert`
|
||||
löst auf Android/iOS automatisch den nativen "Zertifikat installieren"-Dialog
|
||||
aus) – einziger verbleibender manueller Schritt ist der einmalige Import
|
||||
pro Gerät, dafür gibt es ohne externe CA keine Alternative
|
||||
- DuckDNS/`acme`-Service und zugehörige `.env`-Variablen vollständig entfernt
|
||||
|
||||
> Verifiziert: CA- und Leaf-Zertifikat-Erzeugung lokal mit echtem `openssl`
|
||||
> durchgespielt (Zertifikatskette validiert erfolgreich gegen die CA,
|
||||
> `CA:FALSE`/`CA:TRUE` korrekt gesetzt, SAN korrekt), Idempotenz geprüft
|
||||
> (zweiter Lauf mit gleichem Host verändert nichts, geänderter Host erzeugt
|
||||
> nur ein neues Server-Zertifikat, CA bleibt stabil), kompletter End-to-End-
|
||||
> Test mit echtem nginx: `/ca.crt` per HTTP heruntergeladen und **damit ohne
|
||||
> `-k`-Flag** eine echte HTTPS-Verbindung erfolgreich validiert – simuliert
|
||||
> exakt das Verhalten eines Geräts nach CA-Import.
|
||||
|
||||
Reference in New Issue
Block a user