sascha-hemi
Goto Top

Mehrere Webserver (mit SSL) eine öffentliche IP

Hallo,

wir haben vor uns in einem Rechenzentrum ein paar HE anzumieten um dort einige Nextcloud Docker Container anzubieten. Die Container laufen auch soweit.
Eine Firewall haben wir dort natürlich auch mit einberechnet. Es steht uns eine Securepoint Black Dwarf, eine Synology RS820+ und ein Lenovo SR250 zur Verfügung.
Nun müssen diese nur noch von mehreren Domains aus angesprochen werden.
Dazu verwenden wir einen Reverse Proxy den unsere Firewall bereitstellt. Ohne SSL-Verschlüsselung funktioniert das auch alles.

Sind wir so auf dem richtigen weg oder würde man es normalerweise komplett anders machen?
Wenn ich SSL-Zertifikate dort mit einbringen will, müssen wir diese dann im Reverse Proxy oder nur im Nextcloud Container hinterlegen?


Gruß
Sascha

Content-Key: 566237

Url: https://administrator.de/contentid/566237

Printed on: April 20, 2024 at 11:04 o'clock

Member: it-fraggle
it-fraggle Apr 21, 2020 at 07:50:22 (UTC)
Goto Top
Wenn ich SSL-Zertifikate dort mit einbringen will, müssen wir diese dann im Reverse Proxy oder nur im Nextcloud Container hinterlegen?
Die Frage wirft eine Gegenfrage auf: Weißt du wieso du einen Reverse Proxy brauchst oder machst du das, weil es so im Tutorial steht?
Member: sascha-hemi
sascha-hemi Apr 21, 2020 at 07:52:10 (UTC)
Goto Top
Ich weiß schon warum ich den Reverse Proxy benötige... aber mit SSL zusammen bekomme ich es einfach nicht richtig ans laufen.
Member: erikro
Solution erikro Apr 21, 2020 at 07:53:32 (UTC)
Goto Top
Moin,

Zitat von @sascha-hemi:
Sind wir so auf dem richtigen weg?

Ja.

Wenn ich SSL-Zertifikate dort mit einbringen will, müssen wir diese dann im Reverse Proxy oder nur im Nextcloud Container hinterlegen?

Das öffentliche Zertifikat muss auf den Reverse Proxy, da ja die Zugriffe aus dem Internet dort landen. Wenn der Reverse proxy auch mit dem eigentlichen Server SSL/TLS sprechen soll, muss auf dem eigentlichen Server ein entsprechendes Zertifikat hinterlegt werden. Dann kann man auch noch einrichten, dass auch der zugreifenden Reverse Proxy ein Clientzertifikat vorlegen muss.

hth

Erik
Member: it-fraggle
it-fraggle Apr 21, 2020 at 07:54:41 (UTC)
Goto Top
Du legst für jede Domain einen virtual Host im Reverse Proxy an. Darin hinterlegst du das TLS-Zertifikat für den entsprechenden NC.
Member: sascha-hemi
sascha-hemi Apr 21, 2020 at 07:56:18 (UTC)
Goto Top
Vielen Dank erikro. Dann werde ich mal testen, ob das so klappt. face-smile
Member: erikro
erikro Apr 21, 2020 at 07:58:59 (UTC)
Goto Top
Gerne. Hier noch ein Tutorial für den Indianer.
https://www.netnea.com/cms/apache-tutorial-9-reverse-proxy-einrichten/
Member: ASP.NET.Core
Solution ASP.NET.Core Apr 21, 2020 updated at 10:26:42 (UTC)
Goto Top
Theoretisch kann der Reverse Proxy per SNI zu den Containern routen und die SSL-Terminierung wird dort erledigt. Muss der Reverse Proxy aber unterstützen (HAProxy kann das z.B.). Tendenziell lässt man das eher den Reverse Proxy machen. Ist einfacher, da man alles an einem Punkt für einen Webserver hat und nicht bei jedem Anwendungstyp schauen muss, wie da ein Zertifikat eingebunden wird. Sowohl automatisiert als auch wenn man es noch händisch macht.

Ich würde als Reverse Proxy unabhängig davon auf jeden Fall was leichtgewichtiges und für hohe Last optimiertes nehmen, wie Nginx. Ein vergleichsweise fetter Apache geht prinzipiell auch. Ist halt performancetechnisch nicht so gut.

Gerade für Container empfehle ich Traefik. Habe ich seit mehreren Jahren für u.a. Nextcloud, andere PHP Applikationen (Wordpress, Eigenentwicklungen) sowie diverse weitere Applikationen (ASP.NET Core selbst entwickelt, Confluence, verschiedene OS Tools) am laufen. Funktioniert einwandfrei, ist fast so performant wie Nginx. Dank Lets Encrypt wirft man weder unnötig Geld für Zertifikate raus, noch muss man sich um deren Verlängerung kümmern. Auch das läuft mit mehreren Domains + Subdomains reibungslos.