Apache - Reverse Proxy

Errorsmith

Kompiliertier
Hi

Ich habe daheim ein Gerät mit einer Web-Konfigurationsoberfläche das ich aus verschiedenen Gründen von unterwegs bedienen möchte. Leider spricht das Teil nur http, nicht aber https. Daran kann ich ohne weiteres auch nichts ändern.
Ich möchte nun den ohnehin vorhandenen Apache - der ja https kann - als Reverseproxy nutzen um die Verbindung bis zu mir nach Hause mit SSL zu verschlüsseln.

Der Webserver hat die IP 192.168.60.8. das Gerät liegt auf 192.168.81.101 und wird über http://192.168.81.101/geraet angesprochen.

Das grundsätzliche Setup funktioniert, ich kann https://meine.domain aufrufen und die dort platzierte Webseite aufrufen. Um nun auf das Gerät zugreifen zu können, habe ich folgendes zur Konfiguration hinzugefügt:
Code:
  ProxyRequests off
  ProxyPass  /geraet/ http://192.168.81.101/geraet/
  ProxyPassReverse  /geraet/ http://192.168.81.101/geraet
  RequestHeader unset Accept-Encoding
  ProxyHTMLEnable On
  ProxyHTMLInterp On
  ProxyHTMLExtended On
  SetOutputFilter proxy-html
  ProxyHTMLURLMap  http://192.168.81.101/geraet/ https://meine.domain/geraet

Das aktiviert den Reverseproxy, soweit so gut. Dieser Teil funktioniert. Was nicht funktioniert ist das umschreiben der in den Dokumenten auf die korrekte URL:
Enthält ein Dokument also z.B.
href="192.168.60.8/geraet/css/default.css" erhalte ich als Ergebnis href="http://meine.domain/geraet/css/default.css"
Er schreibt also http nicht nach https um.
Woran kann das liegen? Ich baue da schon den ganzen Tag dran rum, komme aber nicht weiter...


Grüße,
errorsmith
 
Ich bin jetzt nicht der HTML-Pro, aber href="192.168..." sieht mir komisch aus. Entweder wird ein absoluter URL mit http://... verwendet oder nur ein relativer Pfadname /css/..., der dann logischerweise auch zu https://.../geraet/css werden muss, weil das ja der Client schon macht.

Kannst du mal schauen, was _wirklich_ im HTML-Source steht?

Achja, ich glaube auch nicht, dass der Proxy was "umschreibt". Er nimmt auf der einen Seite Client-Requests an und schickt auf der anderen Seite selbst welche an den Server. Wenn der HTML-Code tatsächlich hartkodierte URLs enthält, wirds eklig.
 
Code:
  ProxyRequests off
  ProxyPass  /geraet http://192.168.81.101/geraet
  ProxyPassReverse  /geraet http://192.168.81.101/geraet
  ProxyHTMLURLMap  http://192.168.81.101/geraet https://meine.domain/geraet

Versuchs mal damit bzw. mit der Variante, bei der du hinter allen URLs das / ergänzt. Apache ist da etwas zickig.

Grüße
 
Zurück
Oben