Vhost auf Ubuntu-Server

Status
Für weitere Antworten geschlossen.

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Da ich gerne die Apps von Synology nutzen möchte aber durch die erforderlichen Ports dies im Firmennetzwerk nicht möglich ist möchte ich gerne meinen Ubuntu-Server als Proxy einrichten und darauf eine Weiterleitung realisieren.

Meine Vhost Konfiguration sieht so aus:


<VirtualHost *:443>

ServerName sub.domain.de

ProxyPreserveHost On
ProxyRequests Off
ProxyVia Off


ProxyPass /file/ https://192.168.0.110:5001/file
ProxyPassReverse /file/?https://192.168.0.110:5001/file

ProxyPass /download/ https://192.168.0.110:5001/download
ProxyPassReverse /download/ https://192.168.0.110:5001/download

ProxyPass /dsm/ https://192.168.0.110:5001/webman
ProxyPassReverse /dsm/ https://192.168.0.110:5001/webman

ProxyPass /note/https://192.168.0.110:5001/note
ProxyPassReverse /note/https://192.168.0.110:5001/note?

SSL Pfade
<VirtualHost >

Das Problem. Ich bekomme eine Fehlermeldung beim restarten des Apache Services.

AH00526: Syntax error on line 9 of /etc/apache2/sites-enabled/disk.conf:
ProxyPassReverse needs a path when not defined in a Location

Welcher Pfad wird hier den benötigt?

Danke
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Welches ist denn exakt Zeile 9?
Eventuell fehlt nur ein Slash / am Ende der URLs.
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.955
Punkte für Reaktionen
3
Punkte
58
ProxyPass /note/https://192.168.0.110:5001/note
ProxyPassReverse /note/https://192.168.0.110:5001/note?
bzw. fehlen in den beiden Zeilen jeweils ein Leerschritt
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Die 9 Zeile ist die erste ProxyPass Zeile. Allerdings habe ich schon sämtliche Variationen mit/ohne Slash durchprobiert.

Was bedeutet das in den beiden Zeilen jeweils ein Leerschritt fehlt?

Ist den der prinzipielle Aufbau der Vhost Anweisung in Ordnung?
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.955
Punkte für Reaktionen
3
Punkte
58
Was bedeutet das in den beiden Zeilen jeweils ein Leerschritt fehlt?
zwischen "/note/" und "https" sollte doch ein Leerschritt sein in beiden Zeilen, oder?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Prinzipiell ist der Aufbau in Ordnung.

Wenn der Pfad verlängert wird, vorne unten hinten im Eintrag identisch. Bsp.

Eventuell sind die Document Roots oder URL Pfade auf den beiden Servern (Ubuntu und Synology Apache) nicht identisch bzw. unterschiedlich konfiguriert. Deshalb meckert er vermutlich auch nur über den Reverse Pfad.
Da ich den Reverse Proxy nur auf der Syno selbst betreibe (damit von außen einfach per https://dienst.domain.de zugegriffen werden kann, ohne die Ports zu verraten oder nach außen frei zu geben) kann ich dir leider nicht genau sagen, was an der Apache config auf deinem Ubuntu nicht ganz paßt.

P.S. Leerschritt == Leerzeichen
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Hm, das wäre natürlich auch eine Möglichkeit. Kannst du mir erklären wie du das eingerichtet hast? Das wäre spitze :)
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Ob das in allen Belangen das gelbe vom Ei ist weiß ich allerdings auch noch nicht. Ein "kleines" Problem ist die in dutzende Dateien verschachtelte Konfig der Syno-Webserver (DSM (nginx?) und User Webserver (apache)). Öfter komme ich mit try&error schneller voran als mit strukturiertem Vorgehen (geht mir etwas gegen den Strich, ist aber halt ein Kompromiss, wenn ich die Daten bei mir haben/verwalten will und trotzdem niemand anderes der sowas hauptberuflich macht dafür bezahlen will).
Ich erwähne das deshalb, weil ich manchmal beim Laden eines Dienstes erst auf Refresh / F5 den Inhalt zu sehen bekomme und ich noch nicht nachgeforscht habe, woran das liegt.

Mein Setup:
sub.domain.de löst als Strato-DDNS direkt auf meine Public IP auf. Wenn ich direkt domain.de auf meine Public IP setzen würde, könnte ich mir vielleicht das mit den unterschiedlichen Zertifikaten teilweise schenken (Server Name Indication), aber egal. Im DSM ist das Zertifikat für sub.domain.de installiert
https://sub.domain.de landet auf dem user-webserver im document root, also der Synology Willkommens-Seite.

Meine /etc/httpd/sites-enabled-user/httpd-ssl-vhost.conf-user
Darin findet sich ein vHost mit eigenem Cert (CN lautet auf dienst1.domain.de), der auf dem user-webserver läuft (z.B. owncloud oder anderes) und ein zweiter vHost der via ProxyPass läuft (z.B. pyload, tvheadend, ...).
Weitere vHosts einfach ergänzen. Danach starte ich die Webdienste via DSM neu (oder "synoservicectl --restart httpd-user")
<VirtualHost *:443>
ServerName dienst1.domain.de
DocumentRoot "/var/services/web/dienst1"
ErrorDocument 403 "/webdefault/error.html"
ErrorDocument 404 "/webdefault/error.html"
ErrorDocument 500 "/webdefault/error.html"
SSLEngine on
SSLCertificateFile /usr/syno/etc/ssl/ssl.crt/dienst1.crt
SSLCertificateKeyFile /usr/syno/etc/ssl/ssl.key/dienst1.key
SSLCertificateChainFile /usr/syno/etc/ssl/ssl.intercrt/dienst1-ca.crt
</VirtualHost>
<VirtualHost *:443>
ServerName dienst2.domain.de
ProxyPreserveHost On
ProxyRequests Off
ProxyVia Off
ProxyPass / http://127.0.0.1:56432/
ProxyPassReverse / http://127.0.0.1:56432/
SSLEngine on
SSLCertificateFile /usr/syno/etc/ssl/ssl.crt/dienst2.crt
SSLCertificateKeyFile /usr/syno/etc/ssl/ssl.key/dienst2.key
SSLCertificateChainFile /usr/syno/etc/ssl/ssl.intercrt/dienst2-ca.crt
</VirtualHost>


Ich bin da auch noch lang nicht am Ende. Habe erst 2-3 Sachen umgesetzt, noch 10 offen. Am Ende soll nur noch Port 443 nach außen offen sein.

Weitere Anregungen, z.B.
https://primalcortex.wordpress.com/...eb-station-and-virtual-sites-for-filestation/
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
zwei unterschiedliche SSL-Zertifikate werden nicht gehen am selben Server (IP Adresse). Denn der Server entscheidet anhand des HTTP Hostnamens welches Zertifikat angewendet werden soll. Nur wird diese Information vom Client verschlüsselt übermittelt und der Server bräuchte daher die Info welchen Key er nehmen soll, damit er entschlüsseln kann und damit weiss welcher Schlüssel angewendet werden soll. Das ist ein Henne-Ei Problem ;-)
Mit SNI würde es gehen, das hätte aber wiederum zur Folge, dass der angefragte Hostname unverschlüsselt übermittelt wird
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
@jahlives - die Problematik ist mir bekannt. Vielleicht kommt daher der "Schluckauf" manchmal beim Verbindungsaufbau. Allerdings sehe ich auch, dass ich es mit 3 Zertifikaten am Laufen habe (und ich habe SNI nicht wissentlich konfiguriert und Zugriff erfolgt mit https/hsts). Muss ich mir bei Zeiten nochmal ansehen, wieso es "zufällig" zu gehe scheint.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
du kannst auch 100 vhosts konfigurieren mit Zertifikaten. Die entscheidende Frage ist: welches Zertifikat/Schlüssel wird verwendet. Ohne SNI wird immer das erste Zertifikat verwendet (erster vhost)
 
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