# SSL Setup für NinjaCross Server ## 1. Let's Encrypt SSL Zertifikat installieren ```bash # Certbot installieren (Ubuntu/Debian) sudo apt update sudo apt install certbot python3-certbot-apache # SSL Zertifikat anfordern sudo certbot certonly --standalone -d ninja.reptilfpv.de # Automatische Erneuerung einrichten sudo crontab -e # Füge hinzu: 0 12 * * * /usr/bin/certbot renew --quiet ``` ## 2. Apache Module aktivieren ```bash # Notwendige Apache Module aktivieren sudo a2enmod ssl sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_wstunnel sudo a2enmod headers sudo a2enmod rewrite # Apache neustarten sudo systemctl restart apache2 ``` ## 3. VirtualHost konfigurieren ```bash # SSL Konfiguration kopieren sudo cp apache-ssl-config.conf /etc/apache2/sites-available/ninjaserver-ssl.conf # Site aktivieren sudo a2ensite ninjaserver-ssl.conf # Standard-Site deaktivieren (optional) sudo a2dissite 000-default.conf # Apache Konfiguration testen sudo apache2ctl configtest # Apache neuladen sudo systemctl reload apache2 ``` ## 4. Node.js Server anpassen (optional) Ihr Node.js Server läuft weiterhin auf Port 3000 (localhost only). Optional können Sie den Server auf localhost binden: ```javascript // In server.js server.listen(port, 'localhost', () => { console.log(`🚀 Server läuft auf http://localhost:${port}`); console.log(`🔒 HTTPS verfügbar über Apache Proxy`); }); ``` ## 5. Firewall anpassen ```bash # HTTPS Port öffnen sudo ufw allow 443/tcp sudo ufw allow 80/tcp # Port 3000 nur für localhost (Sicherheit) sudo ufw deny 3000 ``` ## 6. Testen 1. Öffne https://ninja.reptilfpv.de 2. Teste QR-Scanner → Kamera sollte funktionieren 3. Prüfe SSL-Rating: https://www.ssllabs.com/ssltest/ ## Vorteile dieser Lösung: ✅ **Automatische SSL-Erneuerung** mit Let's Encrypt ✅ **Hohe Performance** durch Apache SSL-Terminierung ✅ **Security Headers** für zusätzlichen Schutz ✅ **WebSocket Support** für Live-Updates ✅ **HTTP → HTTPS Redirect** automatisch ✅ **Kamera-Zugriff** funktioniert in allen Browsern