PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSL Rewriting rule - Apache 2.2



spacewan
30.04.09, 11:23
Hallo Leute,
ich benötige etwas Hilfe bei den Rewriting rules.
Es scheint etwas "komplizierter" zu sein, zumindest sieht es für mich so aus ;)

Was ich erreichen möchte:
Eine Umleitung auf den SSL VirtualHost mit dann folgender user anmeldung.
Aber NUR für requests die NICHT aus dem Intranet kommen.

Wie kann ich also eine rewriting rule machen, die Leute aus dem Intranet ohne weitere Schritte zulässt,
aber bei allen externen Anfragen sofort auf den SSL VHost umleitet?
Anbei die Config Auszüge meiner 2 VHosts.

<VirtualHost *:80>
<Directory "/httpd/htdocs/intern">
Options All
AllowOverride All
order deny,allow
deny from all
allow from .my.domain.de

</Directory>
</VirtualHost>

<VirtualHost *:443>
<Directory "/httpd/htdocs/intern">
Options All
AllowOverride All
order deny,allow
deny from all
allow from .my.domain.de
# LDAP soll für die Authentifizierung zuständig sein.
AuthType Basic
AuthBasicProvider ldap
AuthName "intern"
AuthzLDAPAuthoritative off
AuthLDAPURL "ldaps://ldap.my.domain.de/ou=people,dc=my,dc=domain,dc=de?uid"
Require valid-user
satisfy any
</Directory>
</VirtualHost>

Für Tipps wäre ich echt Dankbar denn ich habe kein Plan wie ich das realisieren soll.
Greez Marc

marce
30.04.09, 11:26
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond

spacewan
30.04.09, 11:29
Ja die Apache Hilfe habe ich ja schon gesichtet,
aber ich verstehe das nicht so ganz, bin da etwas überfordert...

Bei der Anforderung muss ja eine art wenn-dann abfrage stattfinden, weis nicht wie ich das umsetzen soll

marce
30.04.09, 11:34
Vermutlich am einfachsten über REMOTE_HOST/ADDR - es gibt sicherlich noch andere Möglichkeiten, aber auf der jetzigen Informationsgrundlage klingt's danach.

spacewan
30.04.09, 12:08
Ich habe auf einer anderen Maschiene eine Umleitung für alles auf SSL:

RewriteEngine On
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^/(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Die habe ich mir "zusammengeklaut", da ich doch sehr unerfahren mit den rewriting rules bin.
Aus diesem Grund bin ich auch etwas überfordert mit der Umleitung die ich nun gerne machen würde.

spacewan
30.04.09, 13:31
So ich denke ich habe es "zusammen geklemptnert".

Es scheint so zu funktionieren:

RewriteCond %{REMOTE_ADDR} ^!172\.20\.61\.*
RewriteRule (.*) https://www.mydomain.de/intern$1

Werde das nochmal von extern testen, wenns klappt war's doch einfacher als gedacht ;)

spacewan
30.04.09, 14:16
Hm es geht nicht,
intern klappt es zwar wenn ich die negierung entferne - dann werde ich umgeleitet,
aber wenn ich von extern zugreife klapptes nie.

Habe es mit diveresen varianten probiert:

RewriteCond %{REMOTE_ADDR} ^!172\.20\.61\.*
RewriteRule (.*) https://www.mydomain.de/intern$1 im wechsel mit [R] dahinter

RewriteCond %{REMOTE_ADDR} ^!172.20.61.

RewriteCond %{REMOTE_ADDR} ^!(172\.20\.61\.*)

RewriteCond %{REMOTE_ADDR} ^!(172\.20\.61)

RewriteCond %{REMOTE_ADDR} ^!(172.20.61)

Irgendwer eine Idee??

spacewan
30.04.09, 15:18
Ich hab's hinbekommen:

RewriteCond %{REMOTE_ADDR} !^172\.20\.61\.[0-9][0-9][0-9]
RewriteRule (.*) https://www.mydomain.de/intern$1 [R]