Reverse Proxy: Umleitung extern 80/443 auf localhost/8090

Status
Für weitere Antworten geschlossen.

vision321

Benutzer
Mitglied seit
29. Apr 2019
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Guten Morgen!

Ich versuche gerade, einen Dienst auf meiner DS218+ (DSM 6.2.2 U3) per HTTPS erreichbar zumachen. Klappt mit Let's Encrypt Zertifikat auch grundsätzlich. Nun möchte ich aber gerne, dass die DS automatisch von Port 80 auf Port 443 weiterleitet. Und das will mir partout nicht gelingen. :(

Im Prinzip sollte das ja recht einfach sein, wie etwa hier beschrieben.

Meine Einstellungen sind wie folgt:

Unbenannt 2.pngUnbenannt 1.pngUnbenannt 3.png

Warum will das nicht funktionieren???
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Weil der reverse proxy auf der Syno nicht für sowas gedacht ist. Er leitet eine ankommende Verbindung (80) anderweitig weiter, ABER er verändert nicht die vom Client zu 80 aufgebaute Verbindung. Er baut eine Kommunikationskette auf, wird aber nicht das erste Glied darin (Port 80 vom Client zum proxy) durch was anderes ersetzen.
Du hast also http > proxy > https > http localhost gebaut. Von dem https bekommt der Client aber nichts mit.

Port 8090 Video station?
Systemsteuerung > Anwendungsportal > Anwendungen > Video Station > benutzerdefinierte Domain.
Da werden Sie geholfen. ;)
Domain mit https
 

vision321

Benutzer
Mitglied seit
29. Apr 2019
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
:confused: Danke für Deine Antwort, aber verstehe ich nicht. Die Umleitung HTTP-->HTTPS scheint doch grundsätzlich mit dem DS Proxy zu funktionieren, s. z.B. verlinkter Anleitung von Heiko und vieler zufriedener Nutzerkommentare.

Und bei mir ist es nicht die Videostation, sondern ein Docker-Container. Der Zugriff funktioniert aber eben auch per HTTP und das soll er aus bekannten Gründen eben nicht.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Was gibt es da nicht zu verstehen. Du baust eine http Verbindung zum proxy auf. EGAL wie es hinter dem proxy weitergeht ändert dies nichts an der ersten http Verbindung zum proxy.
Der Gedanke bei der Anleitung ist vermutlich, dass der zweite proxy via hsts dann dafür sorgt, dass der Client in Zukunft nur via https anklopft.
Wieso diese von hinten durch die Brust ins Auge Einstellungen für den proxy bei dir jetzt nicht gehen kann ich dir ohne Tests nicht sagen.
Edit: Eventuell liegt es nur an der Namensauflösung im lokalen Netz, dass das Ziel des ersten Proxies (domain.selfhost.eu) von der DS aus nicht erreicht werden kann. Entweder DNS Problem oder Blockade vom NAT loopback im Router.
Geht https://sub.selfhost.eu von einem Rechner im LAN?
Falls auf der Konsole der DS (ssh/telnet), geht ein 'nslookup sub.selfhost.eu'?

Wieso überhaupt erst per http?
Einfach nur https/443 und diesen proxy nehmen.
Der funktioniert doch sicher, oder?
 
Zuletzt bearbeitet:

Matis

Benutzer
Mitglied seit
28. Mai 2015
Beiträge
735
Punkte für Reaktionen
9
Punkte
44
Das ist nicht ganz logisch. Was Du grade machst ist http.selfhost auf https.selfhost. Dann soll selfhost auf https antworten und leitest es an localhost.
Ein Eintrag: http.selfhost auf http.localhost.
Zweiter EIntrag: https.selhost auf http.localhost

Das setzt vorraus, dass selhost beides kann und dein Dienst auf http und https reagiert.

Wenn du wirklich einen sicheren Zugang haben willst und dein Dienst https kann, dann nur einen Eintrag:
https.selfhost auf https.localhost
 

vision321

Benutzer
Mitglied seit
29. Apr 2019
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hm, finde meinen Plan zumindest grundsätzlich total logisch! :cool:

Nicht anderes passiert doch zB hier im Forum auch, von http://www.synology-forum.de wird zu https://www.synology-forum.de umgeleitet. Genau das möchte ich auch machen. Wie es dann dahinter weitergeht (bei mir also auf localhost:8090) ist doch egal (und funzt bei mir ja auch). Sind die Reverse Proxy Einstellungen dafür die falsche Stelle?

In der Nginx Config ginge das ja in etwa so:

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
 

Matis

Benutzer
Mitglied seit
28. Mai 2015
Beiträge
735
Punkte für Reaktionen
9
Punkte
44
das machst Du schon durch die beiden Häkchen die du gesetzt hast, aber nicht durch den zweiten Eintrag.
D.h. selhost https zu localhost https. Wenn dann jemand http://selfhost benutzt, wird er durch die beiden Häkchen automatisch zu https://selhost und das leitest du an localhost:8090
 

vision321

Benutzer
Mitglied seit
29. Apr 2019
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Ok, ich geb hier auf und mach es jetzt zu Fuß über die Webstation und leite da dann um auf 443...

Danke für Eure Geduld!
 

vision321

Benutzer
Mitglied seit
29. Apr 2019
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Für alle, die sowas auch machen möchten:

Habe es jetzt so gelöst, dass die Webstation mit Apache per .htaccess Datei umleitet. Der Reverse Proxy macht nur noch dom.selfhost.eu:443 auf localhost:8090. Und ich musste Port 81 der DS nehmen, da 80 bereits vom System belegt, aber das sieht ein externer Nutzer ja nicht. Jetzt klappt der Aufruf von "http://dom.selfhost.eu" im Browser, es wird umgeleitet zu https://...

Virtueller Host:

1.PNG

.htaccess Datei:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat