http auf https redirect

Alles, was den Apache betrifft, kann hier besprochen werden.

http auf https redirect

Postby JimBooH » 05. December 2005 13:23

Hey leudz..

Hab folgendes Szenario: Hab nen reverse Proxy aufgesetzt undd der läuft auch wunderbar, sowohl mit http als auch mit https.


Client --Https-->Reverseproxy--https-->Backendserver

Der Aufruf des requests erfolgt mit https://www.....
Nun Möchte ich aber dass ich in der URL nur angebe: www...../gplsec.html.
Das wäre ja eine normaler http-request. Der Proxy soll diesen Request aber nicht bearbeiten sondern nur https. Wie kann ich dem Apache klar machen dass er eine http anfrage auf eine https anfrage redirecten soll und in folge dessen diesen Request auch bearbeitet....?

Ich hab da keine wirklich idee..

Kann mir da jemand weiterhelfen... wäre super..

Danke

mfg
JimBooH
 
Posts: 9
Joined: 05. December 2005 13:07

Postby Wiedmann » 05. December 2005 14:26

Wenn ich dich richtig verstanden habe, möchtest du zwischen Client und Server eine SSL-Verbindung haben, aber im Browser nur "www.example.com" eingeben?

Das ist nicht möglich (ausser du würdest den Quellcode von deinem Browser ändern):
Bei einer Eingaben von "www.example.com" ersetz der Browser automatisch ein "http://" davor. Und damit wäre das ohne SSL (da kein "http://").

Du könntest aber unter "http://www.example.com/*" mit Hilfe von "mod_rewrite" einen Redirect nach "https://www.example.com/*" machen:
- Im Browser "www.example.com" eingeben
- Browser verbindet sich nach "http://www.example.com/"
- Server redirected den Browser zum Vhost "https://www.example.com/" mit dem ReverseProxy

Anleitung findest du im Apache-Manual (Rewriting Guide).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby KingCrunch » 05. December 2005 14:33

Alternativ, wenn auch nicht so eine schöne Variante, wie du von Wiedmann:
Du erstellst eine PHP index.php mit folgenden Inhalt:
Code: Select all
<?php
header ("Location: https://deineurl/index.php");
?>

Daneben gibts noch die Umleitung über HTML, aber das is noch unsauberer
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

mod_rewrite

Postby JimBooH » 06. December 2005 11:39

Genauso habe ich mir das vorgestellt. Prinzipiell war mir klar, dass man schon eine http verbindung hat sobald man www.***.de eingibt. Die sollte halt mehr oder weniger ignoriert werden und in einen https request gewandelt werden, da nur solche vom proxy bearbeiet werden sollen.
Ich werde mich dann mal ausführlicher mit dem Modul beschäftigen, scheint mir doch recht komplex zu sein. Vielleich klappt es ja.Ich werde dann wieder posten wenn ich es hoffentlich hinbekommen habe...

mfg

David
JimBooH
 
Posts: 9
Joined: 05. December 2005 13:07

Unfähig....

Postby JimBooH » 07. December 2005 08:02

also irgendwie fehlt mir ein wenig der rote faden bei der ganzen geschichte hier. ich muss also ein .htaccess datei erzeugen und in der dann die rewrite rules definieren. 1. frage: wo psiecher ich diese datei, im cgi-bin verzeichnis? 2. wie kann ich testen ob die datei genutzt und verarbeitet wird? 3. das ist wohl die schierigste frage: was muss ich denn da nun für nen regulären ausdruck nutzen um eine www.example.com auf eine https://example.com zu mappen. es ist aber wenigsten beruhigend dass es scheinbar echt kompliziert ist nach solchen kommentaren wie "Zugegeben, das "Swiss Army Knife of URL Manipulation" (apache.org), mod_rewrite, zeichnet sich nicht gerade durch seine Zugänglichkeit aus. Gerade Anfängern fällt es oft schwer nicht an der Komplexität der Rewriterules zu verzweifeln" :shock:
Naja über hilfe wäre ich echt dankbar...

mfg

david
JimBooH
 
Posts: 9
Joined: 05. December 2005 13:07

Postby KingCrunch » 07. December 2005 08:20

1. Im Verzeichnis, auf das du dich beziehst
2. Eintippen ung gucken ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby JimBooH » 07. December 2005 08:47

Also das is mir grad nicht klar....Was is denn mein bezugspunkt in diesem szenario? is ja nicht so dass ich irgendwelche verzeichniss sperren will.
Und mit dem eintippen meinst du irgendwelche rules definieren und da kucken obs passt.
lg
JimBooH
 
Posts: 9
Joined: 05. December 2005 13:07

Postby KingCrunch » 07. December 2005 08:57

Na, ja, sperren willste nicht, aber die htaccess verwalten Zugriffbeschränkungen für Verzeichnisse und deren Unterverzeichnisse. Wenn du also eine Datei aufrufst, dann guckt der Apache, ob im selben Verzeichniss eine htaccess liegt, oder ein Verzeichniss höher, oder ein Verzeichniss höher, ..., oder im root. Dementsprechend muss dann irgendwo auf der Linie zwischen deinem Root und deinem Aufruf die htaccess liegen ;) Am besten liegt sie so, dass du jeden erdenkbaren Fall abdeckst, der aufgerufen werden kann. Normalerweise liegt dann die htaccess im Root ;).

Joa, meinte das so, dass du eben die Rules definierst und dann ein paar repräsentative Eingaben in deinem Browser ausprobierst. Bei Syntaxfehlern beschwert sich Apache schon, semantische Fehler lassen sich leider nicht algorithmisch finden. Dazu müssen der Apache genau wissen, was du eigentlich willst, aber 1) wenn er es weiß, dann bräuchtest du die Regeln auch nicht definieren ;) und 2) besitzen keine Intuition, sie können also nicht abschätzen, was so ungefähr dein Vorhaben sein kann.
Wenn du sicher gehen willst, probierst du ALLE Möglichkeiten, die ein Besucher deiner Seite aufrufen könnte, durch. Die Adresszeile im Browser wird aber afaik nur durch die neue ersetzt, wenn du das [R]-Flag hinter die Regel setzt. Ansonsten macht er die Umleitung zwar auch, aber es wird schwierger festzustellen sein, obs geklappt hat ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby deepsurfer » 07. December 2005 15:06

@JimBooH
Der begriff oder Name der Datei ".htacces" bedeutet NICHT das generelle Sperren von Verzeichnissen.
Wie KingCrunch schon erwähnt ist dies eine Steuerungsdatei, die in der httpd.conf des Apachen (auch beim XAMPP) definiert wird.

Der Name als solches ist egal, den kann man auch ander nennen, solange man dies auch in der httpd.conf definiert. Dieser Name wird aber als "standart" angesehen und alle Tutorial über diese Steuerdatei bezeichnen diese auch so.

Soweit dazu.

Thema: Rewrite Rules, dazu schau mal hier rein ;)
http://modrewrite.de
Hier wird dir so ziehmlich alles erklärt was mit dieser Modulanweisung zutun hat.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby KingCrunch » 07. December 2005 15:35

http://www.modrewrite.info/
Fand ich etwas besser erklärt, da gibts auch ne brauchbare StepByStep-Übersicht.

@deepsurfer: "Standard" ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby deepsurfer » 07. December 2005 16:13

KingCrunch wrote:http://www.modrewrite.info/
Fand ich etwas besser erklärt, da gibts auch ne brauchbare StepByStep-Übersicht.
jo...die kannte ich noch nicht ;)
auch gut...kommt in favo

@deepsurfer: "Standard" ;)

jo....iss bekannt, mache das mit absicht ;)
ausserdem liegt "t" näher am "r" und ist mit dem zeigefinger schneller zu erreichen.

greets Deep
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Re: Unfähig....

Postby Wiedmann » 07. December 2005 16:39

1. frage: wo psiecher ich diese datei, im cgi-bin verzeichnis?

Da es ja dein Server ist, würde ich gar keine ".htaccess" benutzen. Und wenn, dann müsste diese bei deinem Problem ins DocumentRoot.

2. wie kann ich testen ob die datei genutzt und verarbeitet wird?

http://httpd.apache.org/docs/2.0/mod/mo ... rewritelog

3. das ist wohl die schierigste frage: was muss ich denn da nun für nen regulären ausdruck nutzen um eine www.example.com auf eine https://example.com zu mappen.

Direkt in der Server- (VHost-) Config in "httpd.conf" (also nicht in einem Directory-Block oder einer ".htaccess"):
Code: Select all
RewriteEngine on
RewriteCond   %{HTTPS}  !=on                       [NC]
RewriteRule   ^/(.*)    https://%{HTTP_HOST}/$1    [R=301,L]
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Versuch 1

Postby JimBooH » 12. December 2005 09:05

Also ich habe die seite https://www.webserver1.de/gpl.html welche ich mit dem Aufruf www.webserver1.de/gpl.html erreichen will. Hab mit den befehlen aus dem vorhergehenden Posting, untergebracht in meiner httpd.conf...

RewriteEngine on
RewriteCond %{HTTPS} !=0 [NC]
RewriteRule ^/gpl.html(.*) https://www.webserver1.de/$1 [R=301,L]

... das ganze versucht..
Aber irgendwie funzt das net.. oder hab ich das net richtig verstanden. Hab auch noch anhand der hilfestellung bisschen gegoogelt aber die meisten haben nicht das selbe problem. :? Ich weiss ich stell mich ganz schön... an.

was soll ich denn nur machen???
JimBooH
 
Posts: 9
Joined: 05. December 2005 13:07

Postby KingCrunch » 12. December 2005 14:57

Ich weiß nicht, ob man das einfach so an beliebiger Stelle in die httpd.conf schreiben kann, aber ich würd sowieso (auch weil sauberer) lieber in eine seperate htacces schreiben. Dazu einfach eine Text-Datei ".htaccess" anlegen und dort den Abschnitt reinschreiben. Natürlich noch entsprechendes wieder aus der httpd.conf rauslöschen.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Geschafft !!

Postby JimBooH » 13. December 2005 09:54

So ich hab hinbekommen...


hab in meiner httpd.conf noch die einträge:

RewriteCond %{HTTPS} !=0 [NC]
RewriteCond %{SERVERPORT} !=443
RewriteCond %{SERVERPORT} !^$
RewriteRule ^/geplsec.html(.*) https://www.webserver1,de/gpl.html [R=301,L]

Damit funzt es wunderbar...

Danke für eure Hilfe, bin froh dass es jetz läuft

lg
JimBooH
 
Posts: 9
Joined: 05. December 2005 13:07

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 19 guests