Zur Navigation

Umleitung auf eine https Seite

1 harmonyker

Hallo,
ich habe hier schon sehr viel gelesen und ausprobiert, aber leider funktioniert bei mir im Moment keine der gelesenen Lösungsvorschläge. Folgende Situation. Im Moment habe ich lokal einen Apache 2.0.59 mit PHP 5.2... und mod_ssl, mod_rewrite installiert unter Windows XP SP2. DocumentRoot ist auf ...\htdocs gesetzt. Darunter gibt es einen Ordner "produkt1". Unterhalb von "produkt1" gibt es einen Ordner "eshop". Darin möchte ich den Login zu meinem Minishop und anderen Seiten (Bestellung etc.) unterbringen.
Nun zu meinem Problem:
Im Ordner "produkt1" liegt die Datei "hinweis.htm" die einen Button zur Weiterleitung beinhaltet. Wenn dieser Button gedrückt wird, dann wird folgender Code ausgeführt:
<a href="eshop/eshop_login.htm" class="buttonlinks"><input type="button" name="hinweis2login" value="Weiter"></a>
Nun möchte ich, das durch diesen Buttonclick per Rewrite, oder wie auch immer, die Seite https://testserver/produkt1/eshop/eshop_login.htm aufgerufen wird und natürlich die Sicherheit im Browser auch entsprechend angezeigt wird. Zum Testen existieren die Zertifikate und funktionieren auch. Ich kann es jedenfalls in meinen Browser laden, wenn ich die Adresse manuell eingebe.
Folgendes habe ich in der httpd.conf versucht:

NameVirtualHost testserver:80

RewriteEngine On
RewriteLog "logs/rewrite.log"
RewriteLogLevel 9 <-- nur zum Debuggen, schon klar

<VirtualHost testserver:80>
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ https://testserver/produkt1/eshop/eshop_login.htm [L,R]
</VirtualHost>

Die Zeilen inerhalb von VirtualHost habe ich auch schon mal in eine .htaccess Datei geschrieben. Ich erhalte die Seite, aber nicht mit den Sicherheitsmerkmalen (Schloß im Browser etc.) aufgezeigt. Auch habe ich folgende Zeilen probiert:

RewriteCond %{REQUEST_URI} = "/eshop/eshop_login.htm" -U
RewriteRule ^\/eshop\/$ https://%{SERVER_NAME}/eshop/$1 [R]

Selbstverständlich habe ich nach jeder Ändeung den Apache neu gestartet.

Was mache ich falsch?

Vielen Dank für jede Hilfe
Klaus Dewald

09.06.2007 00:31

2 Jörg Kruse

Hallo Klaus,

ich würde in dem Link die vollständige URL unterbringen

<a href="https://testserver/produkt1/eshop/eshop_login.htm" class="buttonlinks"><input type="button" name="hinweis2login" value="Weiter"></a>

... dann meldet sich der Browser gleich an Port 443, und du musst nicht erst weiterleiten

Zur WEiterleitung über mod_rewrite:
Da in diesem VirtualHost nur Anfragen auf Port 80 landen, kann die Bedingung nicht zutreffen - wäre aber sowieso nur in der Verneinung sinnvoll, die du dann auch gleich weglassen kannst. Funktioniert die Weiterleitung, wenn du die RewriteCond weglässt?

PS: Ich würde auch die RewriteRule so abändern, dass sie nur auf eshop/eshop_login.htm zutrifft

RewriteCond %{SERVER_PORT} !^443$
RewriteRule (eshop/eshop_login\.htm)$  https://testserver/produkt1/$1 [L,R]

09.06.2007 01:26 | geändert: 09.06.2007 02:01

3 harmonyker

Hallo Jörg,
erst einmal Danke für Deine Antwort. Es ist natürlich die naheliegendste Möglichkeit im Link das https gleich mit unterzubringen. Zu so später Stunde kommt halt nicht jeder darauf. Obwohl auch Du ein Nachtarbeiter zu sein scheinst.

Im Moment habe ich durch das viele rumprobieren auf einmal keine SSL Zugriffsmöglichkeit mehr. FF meldet mir ich würde eine veraltete unsichere SSL Version verwenden. Ich glaube, das muss ich erst einmal lösen, dann beschäftige ich wieder mit meinem Ausgangsproblem.

Ich werde mich dann sicher wieder melden.
Danke
Klaus Dewald

09.06.2007 23:13

4 harmonyker

Hallo Jörg,
da bin ich wieder. Mein Indianer läuft nun wieder. Jetzt kann ich mich meinem Ausgangsproblem widmen.
Ich habe nun den Link inkl. https in der html stehen. Der Link an sich funktioniert auch. ich werde nach dem Zertifikat gefragt etc. Jedoch wird in der Adressleiste des Browsers keine Security angezeigt. Auch das Schloß ist noch geöffnet. Wie kann man das hinbekommen das diese untrüglichen Zeichen der Sicherheit gesetzt werden? Mein Ansatz war das eben mal mit mod_rewrite zu probieren.
Ich habe in meiner jetzigen Umgebung XPSP2 mit einem neuen Apache 2.2.4/mod_ssl 2.2.4/OpenSSL 0.9.8d
Was kann ich tun um das hinzubekommen?

Danke für jede Hilfe
Klaus Dewald

10.06.2007 21:03

5 Jörg Kruse

Hallo KLaus,

ich werde nach dem Zertifikat gefragt etc.

Wie lautet denn genau die Frage? Normalerweise geben die Browser dann eine Meldung hinsichtlich des Zertifikats aus, wenn mit diesem etwas nicht in Ordnung ist

Wenn die URL in der Adresszeile des Browsers mit einem https:// beginnt, ist die Anfrage zumindest am richtigen Port angekommen

10.06.2007 21:43

6 harmonyker (Gast)

Zitat von Jörg
Hallo KLaus,
Hallo Jörg,
Wie lautet denn genau die Frage? Normalerweise geben die Browser dann eine Meldung hinsichtlich des Zertifikats aus, wenn mit diesem etwas nicht in Ordnung ist
Ich habe mir mit OpenSSL ein Testzertifikat inkl. CA Signierung erstellt. Natürlich meckert der Browser das er die Authentizität des Zertifikats nicht bestätigen kann, da der Aussteller nicht bekannt ist. Man kann das Zertifikat akzeptieren. Das geschieht auch. Es ist nun in meinem Zertifikatspeicher im Browser zu sehen.

Wenn die URL in der Adresszeile des Browsers mit einem https:// beginnt, ist die Anfrage zumindest am richtigen Port angekommen

Und genau das geschieht nicht. Ich komme zwar auf eshop_login.htm an, aber ohne das https inkl der Sicherheitsmerkmale in der Adresszeile angezeigt wird. Genau das möchte ich aber. Deshalb dachte ich mit mod_rewrite läßt sich das evtl. bewerkstelligen. Oder geht das auch ohne?

Die Eingabe des Link manuell in die Adressleiste des Browsers schafft das gewünschte.

Noch eine Idee?

Danke
Klaus Dewald

10.06.2007 22:01

7 Jörg Kruse

Wenn der Browser die URL bei Type-In wie erwartet mit https, aber beim Klick auf den Link ohne das https aufruft, funktioniert der Link wohl nicht korrekt. Spielt hier vielleicht noch ein Script eine Rolle, welches den Browser bei onclick auf den Button woandershin weiterleitet?

Funktioniert denn ein ganz normaler Link:

<a href="https://testserver/produkt1/eshop/eshop_login.htm" class="buttonlinks">Weiter</a>

10.06.2007 22:13

8 harmonyker

Hallo Jörg,

Danke für Deine Mühe, aber ich habs gefunden. Normale Links funktionieren auch nicht. Ich habe auf der hauptseite ein Frameset definiert. Die eshop_login sollte nur in einem target=content angezeigt werden. Dadurch werden natürlich die neuen Adressdaten nicht aktualisiert. Ich werde wohl den frame um den eshop neu aufbauen müssen. Oder kennst Du einen anderen Weg drumherum zu kommen?

Das wär super.
Danke nochmal für Deine Hilfe.

Klaus Dewald

10.06.2007 22:23

9 Jörg Kruse

Das heißt, in der Adresszeile steht dann die URL des Framesets? Dann ist natürlich klar, warum das Schloss nicht angezeigt wird :) Dazu muss die https-Seite direkt, d.h. ohne Frameset geladen werden

10.06.2007 22:34

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]