Page 1 of 1

SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Thu 27. Jun 2024, 14:51
by konradl
Hallo zusammen,

ich habe bei mir Zuhause eine VM mit Nextcloud laufen. Diese ist läuft über nginx.
Damit meine IP-Adresse nicht öffentlich ist, habe ich in KeyHelp eine Domain angelegt und unter "Apache-Einstellungen" - "Anweisungen für HTTPS" folgendes eingetragen:

Code: Select all

ProxyPass / https://12.345.678/ (meine IP-Adresse)
ProxyPassReverse / https://12.345.678/
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
Mein KeyHelp Server läuft auf einem vServer, welcher in einem Rechenzentrum gehostet wird.

Das funktioniert auch ordnungsgemäß. Die Domain ist über KeyHelp über ein Let's Encrypt Zertifikat geschützt.

Nun habe ich mich aber gefragt, ob die Verbindung zwischen KeyHelp bzw. dem Reverse Proxy und meiner VM mit Nextcloud geschützt ist. Ich habe bei nginx kein SSL-Zertifikat hinterlegt. Da die Domain auf den KeyHelp Server auflöst, wäre das über Let's Encrypt auch gar nicht möglich.

Weiß jemand, ob die Verbindung durch den Reverse Proxy automatisch auch geschützt ist oder kennt jemand eine Möglichkeit, wie ich die Verbindung sichern könnte?

Vielen Dank!

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Thu 27. Jun 2024, 14:59
by Jolinar
konradl wrote: Thu 27. Jun 2024, 14:51 Nun habe ich mich aber gefragt, ob die Verbindung zwischen KeyHelp bzw. dem Reverse Proxy und meiner VM mit Nextcloud geschützt ist.
Da dein Reverse Proxy über https:// auf deine VM zugreift, ist die Verbindung verschlüsselt.

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Thu 27. Jun 2024, 15:02
by konradl
Jolinar wrote: Thu 27. Jun 2024, 14:59
konradl wrote: Thu 27. Jun 2024, 14:51 Nun habe ich mich aber gefragt, ob die Verbindung zwischen KeyHelp bzw. dem Reverse Proxy und meiner VM mit Nextcloud geschützt ist.
Da dein Reverse Proxy über https:// auf deine VM zugreift, ist die Verbindung verschlüsselt.
Danke für deine Antwort! :)
Kannst du mir sagen, wie das funktioniert, wenn bei nginx kein Zertifikat hinterlegt ist?

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Thu 27. Jun 2024, 15:07
by Florian
Hallo,

sämtliche Prüfungen des Zertifikats sind ja durch die Proxyanweisungen deaktiviert, daher funktioniert das ganze auch mit einem selbstsignierten Zertifikat, und irgendwie muss dein NGinx ja auf Port 443 reagieren, sonst würde es nicht funktionieren.

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Thu 27. Jun 2024, 15:22
by konradl
Florian wrote: Thu 27. Jun 2024, 15:07 Hallo,

sämtliche Prüfungen des Zertifikats sind ja durch die Proxyanweisungen deaktiviert, daher funktioniert das ganze auch mit einem selbstsignierten Zertifikat, und irgendwie muss dein NGinx ja auf Port 443 reagieren, sonst würde es nicht funktionieren.
Danke.
Das stimmt, aber ist die Verbindung auch mit einem selbstsigniertes Zertifikat Ende-zu-Ende-verschlüsselt? Die Verbindung zwischen KeyHelp vServer und Nextcloud VM läuft ja nicht intern, sondern über das Internet, da es zwei verschiedene Standorte sind.
Über die Nextcloud werden sensible Daten verwaltet, daher wäre es wichtig, dass niemand unbefugtes Daten abgreifen kann.

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Thu 27. Jun 2024, 15:27
by Jolinar
konradl wrote: Thu 27. Jun 2024, 15:22 aber ist die Verbindung auch mit einem selbstsigniertes Zertifikat Ende-zu-Ende-verschlüsselt?
Ja.


Edit:
konradl wrote: Thu 27. Jun 2024, 14:51 Mein KeyHelp Server läuft auf einem vServer, welcher in einem Rechenzentrum gehostet wird.
Rein aus Neugier...Warum das umständliche Konstrukt mit einer lokalen VM? Warum packst du deine Nextcloud Instanz nicht einfach mit auf den vServer?

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Thu 27. Jun 2024, 15:36
by konradl
Danke nochmal.
konradl wrote: Thu 27. Jun 2024, 14:51 Mein KeyHelp Server läuft auf einem vServer, welcher in einem Rechenzentrum gehostet wird.
Rein aus Neugier...Warum das umständliche Konstrukt mit einer lokalen VM? Warum packst du deine Nextcloud Instanz nicht einfach mit auf den vServer?
Aus dem Grund, dass wir die Nextcloud überwiegend, ohne Umweg über das Internet, im internen Netzwerk nutzen möchten.
Ich habe sie jetzt extern erreichbar gemacht, damit man auch von unterwegs darauf zugreifen kann.

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver

Posted: Fri 28. Jun 2024, 11:02
by Daniel
Hallo,

zum Verständnis für dich etwas übersichtlicher:
Zugriff Nextcloud (TLS) <--> ['internet'] <--> (terminiert-TLS) [Keyhelp-SVR] (rev-proxy TLS) <--> ['internet'] <--> ['dein Internetrouter'] <--> NAT(:443) <--> (terminiert-TLS) [nginx-VM mit nc]

konradl wrote: Thu 27. Jun 2024, 14:51 Domain angelegt und unter "Apache-Einstellungen" - "Anweisungen für HTTPS" folgendes eingetragen:
Wenn Dir Datensicherheit und Integrität wichtig sind, dann würde ich empfehlen das Zertifikat vom nginx mit zu verifizieren.
Bei einem "selfsigned" Zertifikat auf der nginx-vm, muss dafür das CA-Zertifikatsfile auf dem Keyhelp-Server hinterlegt und in der Konfig mit angegeben werden. Bei einem "öffentlichen" Zertifikat, kann die CA von einem der Aussteller bzw. 'üblichen Verdächtigen' angegeben werden.

Code: Select all

    SSLProxyCheckPeerCN On
    SSLProxyCheckPeerExpire On
    SSLProxyCheckPeerName On
    SSLProxyCACertificateFile /etc/ssl/certs/$DEINE-CA.crt/pem

Re: SSL Verschlüsselung zwischen Reverse Proxy und Webserver  [GELÖST]

Posted: Sun 30. Jun 2024, 15:12
by konradl
Daniel wrote: Fri 28. Jun 2024, 11:02 Wenn Dir Datensicherheit und Integrität wichtig sind, dann würde ich empfehlen das Zertifikat vom nginx mit zu verifizieren.
Bei einem "selfsigned" Zertifikat auf der nginx-vm, muss dafür das CA-Zertifikatsfile auf dem Keyhelp-Server hinterlegt und in der Konfig mit angegeben werden. Bei einem "öffentlichen" Zertifikat, kann die CA von einem der Aussteller bzw. 'üblichen Verdächtigen' angegeben werden.

Code: Select all

    SSLProxyCheckPeerCN On
    SSLProxyCheckPeerExpire On
    SSLProxyCheckPeerName On
    SSLProxyCACertificateFile /etc/ssl/certs/$DEINE-CA.crt/pem
Hallo,

danke für die ausführliche Antwort und Darstellung.
Ich habe mir bereits gedacht, dass etwas in dieser Art erforderlich sein wird.
Deine Antwort hat mir sehr bei der Umsetzung geholfen. Vielen Dank.

Liebe Grüße