You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Michael Renner <mi...@gmx.de> on 2012/01/02 11:13:52 UTC

Re: seltsamer Redirect bei WebDAV

On 30.12.2011 22:58, Martin Allert wrote:
> Hallo zusammen,

Moin rundum und an alle ein schönes neues Jahr!

> Ergänzend zu der Antwort von Harald noch ein paar Verständnis Infos:


[...]

Mit den richtigen Settings komme ich ein Stück weiter. Vielen dank für 
den Hinweis und die Erklärung.

> Das Phänomen mit dem / ist auch einfach zu erklären: findet der
> Apache in der URL keinen vollständigen Pfad auf eine HTML Datei, 
> prüft
> er ob das Ziel ein Directory ist. Trifft das zu, macht er einen
> internen Redirect auf das Verzeichnis (Trenner "/" zwischen Dirs) und
> sucht dort den konfigurierten DirectoryIndex.  Da bei dir das
> Proxypassreverse nicht richtig war, ging der interne Redirect  vom
> backendwebserver direkt an den Browser zurück und genau das konnte 
> der
> Browser ja nicht aufrufen :)

Klar, da fehlte etwas. Jetzt findet die passende Umsetzung von /renner 
auf renner/ statt. Doch leider geht dabei das https verloren. Aus den 
Headern vom Aufruf:

----------------------------------------------------------

https://webdav.domain.tld/renner

GET https://webdav.domain.tld/renner HTTP/1.1
Host: webdav.domain.tld
.
.
.


HTTP/1.1 301 Moved Permanently
Date: Mon, 02 Jan 2012 09:10:47 GMT
Server: Apache
Location: http://webdav.domain.tld/renner/
----------------------------------------------------------

Der Slash wird richtig angepasst, aber das http ist falsch. Der Connect 
funktioniert nur mit https auf Port 443.

Als ServerName ist in der httpd.conf

ServerName https://webdav.domain.tld:443

gesetzt. Hilft nix :-(

Die Crux ist, dass der Apache von SSL nichts weiss, da die 
SSL-Terminierung schon vorher in einem Stück Blech stattfindet, nicht am 
Apache selbst.

Der Redirect kommt vom RP, ein Blick mit tcpdump auf die zwei 
Netzwerkinterfaces bestätigt das: nach 'unten' geht beim Aufruf von 
http://webdav.domain.tld/renner (ohne abschliessenden /) nichts raus. 
VirtualHost ist auf dem RP nicht gesetzt.

Woher nimmt der Apache das Schema in der Antwort für den 301?

Danke
-- 
|Michael Renner      E-mail: michael.renner@gmx.de  |
|81541 Munich        skype: michael.renner.gmx.de   |
|Germany             Don't drink as root!      ESC:wq

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: seltsamer Redirect bei WebDAV

Posted by Michael Renner <mi...@gmx.de>.
On 02.01.2012 12:55, Rainer Jung wrote:
> On 02.01.2012 12:47, Michael Renner wrote:
>> On 02.01.2012 11:35, Reindl Harald wrote:
>>> Am 02.01.2012 11:13, schrieb Michael Renner:

Moin Rainer, danke für die Antwort.

[...]

>> Beim Start moppert das error_log dass
>> [warn] Init: (webdav.domain.tld:443) You configured HTTP(80) on the
>> standard HTTPS(443) port!
>>
>> Aber nachdem ich ein wenig mit Servernamen spielte (auch Einträge 
>> auf
>> ganz andere Servernamen) geht es nun plötzlich. Der Redirect erfolgt 
>> auf
>> https mit abschliessendem Slash.
>
> Die Warnung ist nur eine Warnung. Wenn es noch mehr negative
> Seiteneffekte gibt, würde ich evtl. den Port 443 aus dem ServerName
> nehmen. Solange kein expliziter Port da steht, sollte der Apache beim

ja, das brachte die hässliche Fehlermeldung weg.

Grüsse
-- 
|Michael Renner      E-mail: michael.renner@gmx.de  |
|81541 Munich        skype: michael.renner.gmx.de   |
|Germany             Don't drink as root!      ESC:wq

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: seltsamer Redirect bei WebDAV

Posted by Rainer Jung <ra...@kippdata.de>.
On 02.01.2012 12:47, Michael Renner wrote:
> On 02.01.2012 11:35, Reindl Harald wrote:
>> Am 02.01.2012 11:13, schrieb Michael Renner:
>
> Moin,
>
>>> Als ServerName ist in der httpd.conf
>>> ServerName https://webdav.domain.tld:443
>>> gesetzt. Hilft nix :-(
>>
>> Weil das Unsinn ist und kein Servername
>
> laut http://httpd.apache.org/docs/2.2/mod/core.html#servername aber
> zulässig.
>
> Schema und Port können in der Direktive verwendet werden. Weiter steht
> dort:
> The ServerName directive sets the request scheme, hostname and port that
> the server uses to identify itself. This is used when creating
> redirection URLs.
>
> Beim Start moppert das error_log dass
> [warn] Init: (webdav.domain.tld:443) You configured HTTP(80) on the
> standard HTTPS(443) port!
>
> Aber nachdem ich ein wenig mit Servernamen spielte (auch Einträge auf
> ganz andere Servernamen) geht es nun plötzlich. Der Redirect erfolgt auf
> https mit abschliessendem Slash.

Die Warnung ist nur eine Warnung. Wenn es noch mehr negative 
Seiteneffekte gibt, würde ich evtl. den Port 443 aus dem ServerName 
nehmen. Solange kein expliziter Port da steht, sollte der Apache beim 
Redirect auch keinen reinnehmen. Wenn der RP aber auf einen 
nicht-standard Port (!=80, 443) horcht, dann brauchst Du den 443 - oder 
Du spielst mit UseCanonicalName und ggf. mit UserCanonicalPhysicalPort 
auf dem RP. Am ehesten sollte wohl UseCanonicalName On passen (das ist 
nicht der Default).

Gruß

Rainer


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: seltsamer Redirect bei WebDAV

Posted by Michael Renner <mi...@gmx.de>.
On 02.01.2012 11:35, Reindl Harald wrote:
> Am 02.01.2012 11:13, schrieb Michael Renner:

Moin,

>> Als ServerName ist in der httpd.conf
>> ServerName https://webdav.domain.tld:443
>> gesetzt. Hilft nix :-(
>
> Weil das Unsinn ist und kein Servername

laut http://httpd.apache.org/docs/2.2/mod/core.html#servername aber 
zulässig.

Schema und Port können in der Direktive verwendet werden. Weiter steht 
dort:
The ServerName directive sets the request scheme, hostname and port 
that the server uses to identify itself. This is used when creating 
redirection URLs.

Beim Start moppert das error_log dass
[warn] Init: (webdav.domain.tld:443) You configured HTTP(80) on the 
standard HTTPS(443) port!

Aber nachdem ich ein wenig mit Servernamen spielte (auch Einträge auf 
ganz andere Servernamen) geht es nun plötzlich. Der Redirect erfolgt auf 
https mit abschliessendem Slash.

Ob der Firefox etwas schräg im Cache hatte? Seltsam.

Vielen Dank für alle Hinweise.

CU
-- 
|Michael Renner      E-mail: michael.renner@gmx.de  |
|81541 Munich        skype: michael.renner.gmx.de   |
|Germany             Don't drink as root!      ESC:wq

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: seltsamer Redirect bei WebDAV

Posted by Michael Renner <mi...@gmx.de>.
On 02.01.2012 12:31, Rainer Jung wrote:
> Hi Michael,

Moin,

[...]

>> Das muss das Blech davor ausbügeln weil es die einzige Instanz
>> ist die weiss dass sei selber Proxy spielt, der Apache danach kann
>> dafür nichts
>
> Stimmt, besser wäre der SSL-Endpunkt korrigiert diese Probleme.
> Vermutlich leichter zu machen, besser zu verstehen und weniger
> fehleranfällig.

an unserer Netzwerk-Security vorbei kommt nichts hier rein das deren 
Komponenten nicht auf Viren oder Malware untersucht wurde.

Deswegen dieses etwas aufwändige Konstrukt.

Grüsse
-- 
|Michael Renner      E-mail: michael.renner@gmx.de  |
|81541 Munich        skype: michael.renner.gmx.de   |
|Germany             Don't drink as root!      ESC:wq

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: seltsamer Redirect bei WebDAV

Posted by Rainer Jung <ra...@kippdata.de>.
Hi Michael,

On 02.01.2012 11:35, Reindl Harald wrote:
>
>
> Am 02.01.2012 11:13, schrieb Michael Renner:
>> Klar, da fehlte etwas. Jetzt findet die passende Umsetzung von /renner auf
>> renner/ statt. Doch leider geht dabei das https verloren. Aus den Headern
>> vom Aufruf:
>
> Klar, siehe unten
>
>> Als ServerName ist in der httpd.conf
>> ServerName https://webdav.domain.tld:443
>> gesetzt. Hilft nix :-(
>
> Weil das Unsinn ist und kein Servername

Na ja, laut Doku und Code geht das bei 2.2.21 schon, auch wenn ich das 
bis gerade eben auch nicht wusste. Und interessanterweise setzt es auch 
intern genau das Scheme-Feld am (virtuellen) Server, welches beim 
Redirect-Ausführen zum absolut machen der URL verwendet wird.

Michael: Du solltest aber checken, ob Du diesen ServerName auch in dem 
VHost gesetzt hast, der den Request abbekommt.

Außerdem bin ich nicht sicher, ob Du Dir durch diesen Hack unangenehme 
Seiteneffekte reinholst.

Der Trailing-Slash-Redirect, den Du siehst, kommt vom mod_dir im RP, 
d.h. schon bevor mod_proxy zuschlägt. Wenn es nicht gelingt den 
Trailing-Slash-Redirect zu fixen, etwa so wie Du das schon versucht 
hast, kannst Du ihn auch alternativ mit "DirectorySlash Off" (evtl. im 
VHost) auf dem RP abstellen. Dann geht der Request zunächst zum 
WebDAV-Apache durch, und dort passiert ggf. der gleiche 
Trailing-Slash-redirect (je nach Konfig).

Auf dem Web zurück kommt dann zwar ProxyPassReverse zum tragen, aber 
erneut muss dort aus einer lokalen URI eine volle URL gemacht werden. 
Ohne Trick kommt da eben wieder eine http-URL raus, weil der RP nix von 
https weiß. An sich sollte aber Dein ServerName-Trick klappen. Es kann 
halt nur sein, dass er andere negative Seiteneffekte hat.

>> Die Crux ist, dass der Apache von SSL nichts weiss, da die SSL-Terminierung schon
>> vorher in einem Stück Blech stattfindet, nicht am Apache selbst.

> Tja und an dieser kranken Config liegt das Problem
>
> Der Apache soll Proxy spielen und weiss selber nicht dass er https
> ist - Was soll er dann machen wenn davor schon was Proxy spielt
> du eine nicht existente URL eingibst, er so freundlich ist und
> einen Redirect macht der nun mal RFC-Konform FQ stattzufinden hat
>
> Das muss das Blech davor ausbügeln weil es die einzige Instanz
> ist die weiss dass sei selber Proxy spielt, der Apache danach kann
> dafür nichts

Stimmt, besser wäre der SSL-Endpunkt korrigiert diese Probleme. 
Vermutlich leichter zu machen, besser zu verstehen und weniger 
fehleranfällig.

Gruß

Rainer

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: seltsamer Redirect bei WebDAV

Posted by Reindl Harald <h....@thelounge.net>.

Am 02.01.2012 11:13, schrieb Michael Renner:
> Klar, da fehlte etwas. Jetzt findet die passende Umsetzung von /renner auf 
> renner/ statt. Doch leider geht dabei das https verloren. Aus den Headern 
> vom Aufruf:

Klar, siehe unten

> Als ServerName ist in der httpd.conf
> ServerName https://webdav.domain.tld:443
> gesetzt. Hilft nix :-(

Weil das Unsinn ist und kein Servername

> Die Crux ist, dass der Apache von SSL nichts weiss, da die SSL-Terminierung schon 
> vorher in einem Stück Blech stattfindet, nicht am Apache selbst.

Tja und an dieser kranken Config liegt das Problem

Der Apache soll Proxy spielen und weiss selber nicht dass er https
ist - Was soll er dann machen wenn davor schon was Proxy spielt
du eine nicht existente URL eingibst, er so freundlich ist und
einen Redirect macht der nun mal RFC-Konform FQ stattzufinden hat

Das muss das Blech davor ausbügeln weil es die einzige Instanz
ist die weiss dass sei selber Proxy spielt, der Apache danach kann
dafür nichts