PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache SSL-Verschlüsselung einer 8080-Verbindung



nother
02.08.09, 22:01
Hallo zusammen,

folgende Ausgangssituation. Ich habe einen einen Webserver und ein SSL-Zertifikat für meine Domain: www.meinedomain.de
Inhalte werden normalerweise über http://www.meinedomain.de abgerufen (also Port 80).
Daneben läuft eine webbasierte Datenbankanwedung auf Port 8080 auf diesem Server, erreichbar über http://www.meinedomain.de:8080

Ich möchte nun die Verbindung zu dieser Webanwendung mit meinem SSL-Zertifikat verschlüsseln, so dass z.B. der Aufruf von http://www.meinedomain.de/server verschlüsselt wird und intern an den Port 8080 weitergegeben wird.


Die Umleitung müsste im <VirtualHost *:80> mittels
Redirect permanent /server https://www.meinedomain.de/server
erfolgen, oder?

Jetzt kommt aber der komplizierte Teil.
Im <VirtualHost *:443> müsste ich einen Proxy für https://www.meinedomain.de/server konfigurieren mit rewrite-rules und so ... hier bin ich allerdings mit meinem Latein am Ende :(

Hat hier jemand ausreichend Erfahrungen in dem Bereich?

greets
nother

Iluminat23
03.08.09, 01:14
ich habe von der apche konfiguration nur sehr begrenzt plan hier mal ein ausschnitt aus meiner config weclhe alles was auf port 80 rein kommt auf 443 also https umleitet. eventuell hilft dir das weiter.

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
<IfModule mpm_peruser_module>
ServerEnvironment apache apache
</IfModule>
</VirtualHost>


gruß iluminat23

UzumakiNaruto
03.08.09, 08:28
<VirtualHost *:8080>
***
</VirtualHost>

dort einfach rein was nötig ist (pfad zum doc root, etc)

du wirst dann auf jedenfall einen https aufruf machen müssen .. sonst wird der client nicht nach dem zertifikat fragen ;)

nother
03.08.09, 14:19
Ich danke euch.

Die erste Konfiguration geht wohl in die richtige Richtung. Einen vhost auf Port 8080 habe ich auch schon versucht. Da sagt der Apache aber, dass das nicht geht.

Also ich bin nun soweit, dass der Aufruf vernünftig umgeleitet und verschlüsselt wird:

<VirtualHost meineIP:80>
...
...
Redirect permanent /server https://www.meinedomain.de/server/
...
...
</VirtualHost meineIP:80>

Der Aufruf des Unterverzeichnises wird also nach https umgeleitet. Das Unterverzeichnis muss im Gegensatz zu Aliases auch wirklich existieren ... ist aber halt leer.

Für den https-Teil habe ich dann folgendes angelegt:

<VirtualHost meineIP:443>
...
...
<Proxy *>
order deny,allow
allow from all
</Proxy>

ProxyRequests Off
ProxyPass /server/ http://127.0.0.1:8080/
ProxyPassReverse /server/ http://127.0.0.1:8080/
...
...

</VirtualHost meineIP:443>

Das funktioniert nun soweit, dass der Aufruf von http://www.meinedomain/server umgeleitet und verschlüsselt wird nach https://www.meinedomain.de/server
Leider kommen nur html-Inhalte durch. Bilder und Links funktionieren nicht.
Der Link für ein Bild sieht dann z.B. so aus: https://www.meinedomain.de/bilder/logo.png
Eigentlich sollte es doch heissen https://www.meinedomain.de/server/bilder/logo.png Der Apache-Proxy scheint nun dieses /server/ zu verschlucken. Und hier weiss ich nicht weiter.

Jemand einen Tipp. Ich glaube jetzt muss die rewrite-engine ran, oder?

greets
nother

marce
04.08.09, 07:04
ob das /server/ in der URL der Seite drin steht hängt auch vom Quellcode der Seite ab - der Proxy liefert nur zurück, was er selbst bekommt - wenn also in 127.0.0.1:8080 absolute URLS verwendet werden - tja, Pech gehabt (ok, man könnte einen Ausgangs-Content-Filter nachschalten)

nother
04.08.09, 08:41
In der Tat sehen die Links von Bildern im Quelltext der angezeigten Seite so aus:

... src="/bilder/logo.png" ...

Der Apache müsste also immer ein /server einfügen. Ist so etwas überhaupt möcglich?

greets
nother

marce
04.08.09, 08:43
Ja. Steht auch in meinem Posting.

Alternativ - eine 2. Proxy-Direktive.