Redirect funktioniert in speziellem Fall nicht

Michi21609

New Member
[Closed] Redirect funktioniert in speziellem Fall nicht

Hallo!

Folgende Konfiguration:
Plesk 8.6.0
Apache 2.0

Problem:
Ich möchte Anfragen auf domain.tld/egroupware/login.php immer auf https://www.domain.tld/egroupware/login.php umleiten!

Funktioniert im Grunde auch. Wenn ich zum Beispiel die folgenden URLs eingeben dann funktioniert es:
- http://www.domain.tld/egroupware/login.php
- http://domain.tld/egroupware/login.php
- www.domain.tld/egroupware/login.php
- domain.tld/egroupware/login.php

Aber es funktioniert NICHT, wenn ich die folgende URL eingebe:
https://domain.tld/egroupware/login.php

Hab das ganze in der vhost.conf mit folgendem Eintrag gemacht:
RedirectPermanent /egroupware/login.php https://www.domain.tld/egroupware/login.php

Was brauchts da noch?

Gruss, Michi
 
Last edited by a moderator:
Aber es funktioniert NICHT, wenn ich die folgende URL eingebe:
https://domain.tld/egroupware/login.php
Vermutlich, weil der Eintrag innerhalb eines VirtualHost-Containers steht, der nur für die Auslieferung der Seite via HTTP und nicht via HTTPS zuständig ist. Du müsstest da ggf. noch die vhost_ssl.conf bearbeiten. Pass aber auf, dass du keine Endlosschleife produzierst. Da wäre dann mod_rewrite mit einer entsprechenden RewriteCond das Mittel der Wahl.
 
Bin am recherchieren, aber blick grade nicht durch...

Wie wärs mit nem konkreten Beispiel für mein Problem? (Mittels mod_rewrite und RewriteCond) :D

PS: den infinite-loop hab ich schon hingekriegt! :)
 
Schnall das wirklich nicht so ganz, habs schon auf x verschiedene Weisen ausprobiert, klappt aber nicht...

Ich möchte in der vhost_ssl.conf nen Eintrag, der das folgende macht:
Kommt eine Anfrage auf https://domain.tld/egroupware/login.php dann soll er das auf https://[B]www[/B].domain.tld/egroupware/login.php weiterleitem (ohne das "www" ist eben mein SSL-Zertifikat nicht gültig!).

Kann ja nicht so schwer sein, aber am Anfang scheint mir das RewriteCond, RewriteRule-Zeug doch ein wenig verwirrend.

Ein Beispiel für mein Problem mit kurzer Erläuterung wär ne tolle Sache!:)

Danke und Gruss,
Michi
 
Kommt eine Anfrage auf https://domain.tld/egroupware/login.php dann soll er das auf https://[B]www[/B].domain.tld/egroupware/login.php weiterleitem (ohne das "www" ist eben mein SSL-Zertifikat nicht gültig!).
Dir ist aber schon klar, dass du dann trotzdem noch eine Fehlermeldung des Browsers erhältst, dass das Zertifikat nicht zum Hostname passt, oder?

Ein Beispiel für mein Problem mit kurzer Erläuterung wär ne tolle Sache!:)
Du meinst etwa so, wie in der offiziellen Dokumentation? :rolleyes:
http://httpd.apache.org/docs/2.2/rewrite/rewrite_guide.html#canonicalhost
 
Dir ist aber schon klar, dass du dann trotzdem noch eine Fehlermeldung des Browsers erhältst, dass das Zertifikat nicht zum Hostname passt, oder?
--> hmmm.... beim RedirectPermanent, welches ich benutzte um alle http anfragen auf https umzuleiten (Siehe Init-Post) funktionierts ja auch. Das heisst das Zertifikat wird dann anerkannt! Was ist denn mit RewriteCond, RewriteRule anders?
--> Wie mach ichs dann, dass das Zert. läuft?

Du meinst etwa so, wie in der offiziellen Dokumentation?
http://httpd.apache.org/docs/2.2/rew...#canonicalhost
--> Ups, da war ich schon mal, hab das aber anscheinend übersehen.

Hab jetzt diese Zeilen in meine vhost_ssl.conf reingetan:
Code:
RewriteEngine on
RewriteCond %{HTTP_HOST}   !^www\.domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         https://www.domain.com/$1 [L,R,NE]

Funktioniert aber trotzdem nicht... Bzw. ich habe genau den Effekt vor dem du mich gewarnt hast? -> Ich geb die URL ohne www in die Adressleiste des Browsers und dann wird aber nicht auf www.domain.ch/... weitergeleitet (Dementsprechend ist auch das Zertifikat nicht gültig :-( ). Wird es denn bei RewriteRule nur intern im Server weitergeleitet und nach aussen bleibt es für den User (bzw. den Browser) gleich???
 
--> hmmm.... beim RedirectPermanent, welches ich benutzte um alle http anfragen auf https umzuleiten (Siehe Init-Post) funktionierts ja auch. Das heisst das Zertifikat wird dann anerkannt! Was ist denn mit RewriteCond, RewriteRule anders?
Mach dir mal klar, ab wann bei HTTPS die Verschlüsselung via SSL in Kraft tritt, wobei dann auch das Zertifikat mit dem eingetragenen Hostnamen geprüft wird.

Kleiner Tipp: Die Umleitung erfolgt auf Ebene von HTTP(S) und SSL ist nicht umsonst eine Transportverschlüsselung (Transport -> Layer 4 im OSI-Modell).
 
Aha, ich glaube ich seh das Problem... Ich "establishe" die SSL-Verbindung beim ersten "connect" zum Server und innerhalb dieser dann stehenden Verindung wird dann auch die Weiterleitung gemacht... oder?

Wenn ich jetzt am Anfang ne falsche URL habe, die nicht zum Zertifikat passt, dann bringt mir dann auch ne Weiterleitung zur "korrekten" URL nix mehr, da ich bei der Meldung bezüglich falschem Zertifikat hängen bleibe (Das heisst die Weiterleitung wird erstens nicht gemacht und bringt zweitens nix. Bzw. wird nach dem manuellen bestätigen des "falschen" SSL-Zertifikats gemacht, aber das ist dann ja auch für nix...)?

Jetzt frag ich mal so faul und doof: Gibts dafür keinen work-arround? So quasi:
1. SSL-Verbindung abbrechen
2. Mit der "richtigen" URL nochmals ne neue SSL-Verbindung aufgleisen?
--> Hmmm... tönt auch recht scheisse... :o

Also kurz gefragt, kann ich da noch was machen oder muss ich mit dieser Sache leben?
 
Aha, ich glaube ich seh das Problem... Ich "establishe" die SSL-Verbindung beim ersten "connect" zum Server und innerhalb dieser dann stehenden Verindung wird dann auch die Weiterleitung gemacht... oder?
Rrrrichtig.

Jetzt frag ich mal so faul und doof: Gibts dafür keinen work-arround? So quasi:
1. SSL-Verbindung abbrechen
2. Mit der "richtigen" URL nochmals ne neue SSL-Verbindung aufgleisen?
--> Hmmm... tönt auch recht scheisse... :o
Nein. Das ist übrigens ein Feature und kein Bug. Überleg dir doch mal die Implikationen bezüglich Phishing, wenn das möglich wäre.
 
Hmmm... Jaaaaa, doch ich denk ich verstehe!

Vielen dank sag ich mal! Dann wär der Thread ja dann doch noch mit viel Müh und Not geschlossen! ;)

Nochmals danke!
 
Back
Top