# SSL-Konfiguration für das MYP-System Dieses Dokument beschreibt die SSL-Konfiguration für das Mercedes-Benz 3D-Druck-Management-System (MYP) am Standort Berlin Werk 040. ## Übersicht Das System besteht aus zwei Hauptkomponenten: 1. **Backend** (Flask-Anwendung) - Hostname: `raspberrypi` - Ports: 443 (HTTPS), 80 (HTTP-Fallback) - SSL: Selbstsigniertes Zertifikat 2. **Frontend** (Next.js-Anwendung mit Caddy-Proxy) - Hostname: `m040tbaraspi001.de040.corpintra.net` - Port: 443 (HTTPS) - SSL: Selbstsigniertes Zertifikat durch Caddy ## Voraussetzungen - Docker und Docker Compose müssen installiert sein - OpenSSL für die Zertifikatgenerierung - Administratorrechte für das Einrichten der Hostnamen ## Einrichtung ### 1. Hostnamen konfigurieren Für die korrekte Funktion des Systems müssen die folgenden Hostnamen in der `/etc/hosts` (Linux/macOS) oder `C:\Windows\System32\drivers\etc\hosts` (Windows) Datei eingerichtet werden: ``` 127.0.0.1 m040tbaraspi001.de040.corpintra.net m040tbaraspi001 127.0.0.1 raspberrypi ``` Verwenden Sie für die automatische Konfiguration die bereitgestellten Skripte: - Windows: `setup_hosts.ps1` (als Administrator ausführen) - Linux/macOS: `setup_hosts.sh` (mit sudo ausführen) ### 2. SSL-Zertifikate generieren Für die HTTPS-Kommunikation werden selbstsignierte Zertifikate verwendet: - Windows: `generate_ssl_certs.ps1` (als Administrator ausführen) - Linux/macOS: `generate_ssl_certs.sh` (mit sudo ausführen) Die Zertifikate werden im Verzeichnis `backend/instance/ssl/` gespeichert: - Backend: `myp.crt` und `myp.key` - Frontend: `frontend.crt` und `frontend.key` ### 3. System starten Nach der Konfiguration kann das System mit folgendem Befehl gestartet werden: ``` docker-compose up -d ``` ## Zugriff auf das System - **Backend-API**: https://raspberrypi/ - **Frontend-Anwendung**: https://m040tbaraspi001.de040.corpintra.net/ Beim ersten Zugriff wird der Browser eine Sicherheitswarnung anzeigen, da selbstsignierte Zertifikate verwendet werden. Diese Warnung kann akzeptiert werden, um fortzufahren. ## Konfigurationsdateien Die SSL-Konfiguration ist in folgenden Dateien definiert: - `backend/app/config/settings.py`: Backend-SSL-Konfiguration - `frontend/docker/caddy/Caddyfile`: Frontend-Proxy-Konfiguration mit SSL - `docker-compose.yml`: Docker-Container-Konfiguration mit Hostnamen und Ports ## Fehlerbehebung ### Zertifikatsprobleme Falls die SSL-Zertifikate nicht richtig funktionieren, führen Sie folgende Schritte aus: 1. Überprüfen Sie, ob die Zertifikate im Verzeichnis `backend/instance/ssl/` existieren 2. Führen Sie die Skripte zur Zertifikatgenerierung erneut aus 3. Starten Sie die Container neu: `docker-compose restart` ### Hostnamenprobleme Falls die Hostnamen nicht aufgelöst werden können: 1. Überprüfen Sie die Einträge in der Hosts-Datei mit `cat /etc/hosts` (Linux/macOS) oder `type C:\Windows\System32\drivers\etc\hosts` (Windows) 2. Führen Sie die Hostnamen-Setup-Skripte erneut aus 3. Überprüfen Sie die Netzwerkkonfiguration in `docker-compose.yml` ## Sicherheitshinweise - Die selbstsignierten Zertifikate sind für Entwicklungs- und interne Zwecke geeignet - Für Produktionsumgebungen sollten offiziell signierte Zertifikate verwendet werden - Der HTTP-Port 80 beim Backend dient nur als Fallback und sollte in kritischen Umgebungen deaktiviert werden