SSL auf Raspberry Pi für Nextcloud in Docker Container?

Ich habe auf meinem Raspberry Pi 4 Casa OS installiert. Darin läuft unter anderem eine NextCloud-Instanz.

Von Aussen (aka Internet) kann ich über domain.de:5011 zugreifen. Der Router leitet den Port zu meinem Raspberry Pi auf den Port von der NextCloud weiter. Das Problem ist, dass die Verbindung noch unverschlüsselt ist.

Ich habe bereits auf x verschiedene Wege versucht SSL über den Nginx Proxy Manager einzurichten. Das einzige, das mir (irgendwie) gelungen ist, ist ein Zertifikat zu erstellen. Aber das höchste aller Gefühle war dann immer eine Bad-Gateway-Fehlermeldung.

Weiss jemand, wie ich eine verschlüsselte Verbindung entsprechend einrichten kann bei meinem Setup:

  • "domain.de:5011". Von Aussen habe ich diesen Port im Router zur Verfügung.
  • Nextcloud ist in einem Docker Container installiert (Port 10081)
  • Nginx Proxy Manager in einem Docker Container hört auf dem Port 80 und 443 zu (Admin Panel auf Port 81)

Vielleicht noch als Nebeninformation. Im gleichen Netzwerk laufen auch Synology-Services, die jedoch verschlüsselt arbeiten und ebenfalls über 5000-er Ports von aussen erreichbar sind. (In den Tutorials, die ich gefunden habe, wurde die SSL-Einrichtung im Nginx Proxy Manager nie über Ports ermöglicht. Erschweren diese Ports das Ganze?)

Ich verstehe wirklich nicht, wie ich das am besten einrichten soll. Kann man den Raspberry Pi "allgemein" verschlüsselt kommunizieren lassen (soll heissen, dass auch der Traffic im lokalen Netz bereits verschlüsselt ist. Das ist bei den Synology-Services so.) oder geht es einfacher, wenn nur der Traffic nach aussen verschlüsselt ist?

Vielen Dank im Voraus :) Ich bin wirklich langsam überfragt...

Server, Internet, Netzwerk, Port, Proxy, Router, SSL, Verschlüsselung, Zertifikat, nginx, Docker, Nextcloud
FFMPEG - Tee Muxer | gleiches Input/ Output an 2 Server (rtmp) schicken?

Moinsen ✌🏼

Würde gerne wissen, wie ich den Output von FFMPEG an 2 Server schicke. In dem Fall YouTube und Twitch.

Also einzeln bzw. beide gleichzeitig bekomme ich grundsätzlich hin. Aber ich muss dafür 2 Mal FFMPEG ausführen. Nun habe ich gelesen und viel gesucht und habe einiges mit dem tee Muxer getestet. Jedoch habe ich entweder nur Ton oder Fehlermeldungen und nur an einer Destination.

Ich habe zum Testen den Befehl im nginx rtmp conf einfach Mal auf der CLI laufen lassen und komme nicht wirklich weiter.

Also folgende Befehle nutze ich.

ffmpeg -i /VIDEO.mp4 -crf 18 -preset ultrafast -acodec aac -ar 48000 -ac 2 -b:a 320k -s 1920x1080 -vcodec libx264 -r 48 -b:v 6000k -minrate 3500K -maxrate 8000k -bufsize 14000k -g 96 -f flv rtmp://ber.contribute.live-video.net/app/live-KEY;

Dieser funktioniert sowohl für YouTube als auch für Twitch.

Wobei auch noch die Frage wäre, was an dem Befehl noch bei FFMPEG zu verbessern wäre bezüglich der Video/Audio Qualität usw.

Jetzt ist halt meine Hauptfrage, wie ich es mit Tee hin bekomme FFMPEG nur EIN Mal laufen zu lassen und lediglich das Ergebnis an 2 Server zu schicken.

Wenn ich Tee verwende wie es im Internet steht. Geht mittlerweile der Befehl ohne Fehler aber ich bekomme nur Audio an einer Destination.

ffmpeg -i /VIDEO.mp4 -crf 18 -preset ultrafast -acodec aac -ar 48000 -ac 2 -b:a 320k -s 1920x1080 -vcodec libx264 -r 48 -b:v 6000k -minrate 3500K -maxrate 8000k -bufsize 14000k -g 96 -f tee -map 0:v -map 0:a "[f=flv]rtmp://ber.contribute.live-video.net/app/live_KEY|[f=flv]rtmp://a.rtmp.youtube.com/live2/KEY";

Es soll einfach an beide Server der selbe Input/Output gesendet werden der halt nur 1 Mal berechnet wird.

Anstatt wie bisher in meiner Config 2 Mal FFMPEG laufen zu lassen.

Ich brauche aktuell tatsächlich auch keine weiteren Codecs usw. wie man im Internet auch liest um halt mehrere Größen und Qualitäten zu bekommen.

Wäre zwar auch grundsätzlich nochmal hilfreich das richtig umzusetzen aber aktuell würde mir die "halbe" Rechenleistung sozusagen reichen um halt an YouTube und Twitch zu streamen.

Mit freundlichem Gruß

✌🏼😃

YouTube, Livestream, Streaming, ffmpeg, nginx, Twitch
NGINX Reverse Proxy sicher konfigurieren?

Hallo,

ich habe eine grundsätzliche Frage dazu, wie man NGINX sicher als Reverse Proxy einsetzt und leider nicht wirklich was dazu im Netz gefunden.

Mal angenommen auf Server A läuft eine Webapplikation, die auf 10.0.0.1:5000 hört und auf Server B läuft mein NGINX, der auf 10.0.0.2:80/443 hört. Ich möchte also von Server A zu B einen Reverse Proxy machen und die Verbindung soll mit TLS abgesichert sein.

upstream serverA {
    server 10.0.0.1:5000;
}

server {
    server_name example.org;
    listen [::]:443 ssl ipv6only=on;
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/example.org.crt;
    ssl_certificate_key /etc/ssl/private/example.org.key;

    location / {
        proxy_pass http://serverA;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
    }

}

... HTTPS redirect

Aber jetzt ist doch nicht der Traffic von Server B also dem NGINX, auf den der Nutzer zugreift zu Server A, der Webapplikation verschlüsselt oder liege ich da falsch? Falls er nicht verschlüsselt ist, wie erreiche ich das? Ist hier eine einfache Firewall Regel auf Server A schon ausreichend? Im Sinne von

ufw allow in from 10.0.0.2 to any port 5000/tcp

Danke für alle Antworten

Server, Computer, Technik, Linux, Sicherheit, IT-Sicherheit, SSL, Technologie, Webserver, nginx, Spiele und Gaming

Meistgelesene Fragen zum Thema Nginx