httpd-users-de mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcus Reimann" <Marcus.Reim...@reimann-systemberatung.de>
Subject RE: mod_ssl: HTTP und HTTPS gleichzeitig auf Port 443?
Date Sat, 23 Dec 2006 01:43:02 GMT
Hallo Olaf,

Du schreibst:

>forbid access unless HTTPS == disable HTTP (funktional gesehen)
>
>Laß' mal gut sein, das bringt uns nicht weiter.

Du hast in Deiner ersten Mail zu diesem Thema gefragt, was Dein
Denkfehler sei, genau dies ist er: "forbid" <> "disable" !

Nochmal zur Klarstellung: Wenn eine Direktive etwas verbietet,
heißt das nicht, das die Direktive irgendetwas "abschaltet" oder
"deaktiviert", sondern sie _verbietet_ etwas Spezielles.

Etwas zu verbieten und etwas abzuschalten ist (erst recht
funktional gesehen) ein Riesen-Unterschied:
- Du kannst beispielsweise Benutzern Deines Fileservers
  den Zugriff auf ausgewählte Dateien _verbieten_ aber das
  bedeutet ja nicht, dass Du deshalb den dahinter laufenden
  Fileserver "abschaltest" oder "deaktivierst".
- Du kannst innerhalb einer Datenbank einigen Benutzern den
  den Zugriff auf eine Tabelle mit vertraulichen Daten
  _entziehen_ - deshalb wird aber nicht die gesamte Datenbank
  "abgeschaltet"
- Und so ist bei dieser Direktive eben auch: hier wird nichts
  und nie nicht abgeschaltet, sondern es wird etwas _verboten_
  (forbidden). SSL soll bei dieser Direktive schonmal gar nicht
  abgeschaltet werden, sondern im Gegenteil:

Die Direktive SSLRequireSSL ist dafür da, Benutzern den Zugriff
auf den Inhalt eines Verzeichnisses zu verbieten - und zwar
solange, bis der Benutzer via SSL auf das Verzeichnis zugreift
(deshalb auch die Bezeichnung "RequireSSL" - ein Zugriff auf
diese Resource _erfordert_ SSL).

Sobald diese Direktive gesetzt ist (und das SSL-Modul geladen
ist), wird von mod_ssl geprüft, ob der Zugriff auf die Resource
via SSL (und damit ist das Protokoll "https" gemeint und nicht
"http", wie in den Beispielen Deines Eingangspostings aufgeführt)
erfolgt oder nicht.
- Wenn der Zugriff über SSL erfolgt,
  dann wird die Resource ausgeliefert.
- Wenn der Zugriff jedoch nicht über SSL erfolgt,
  dann wird die Resource nicht ausgeliefert, sondern
  der Apache gibt entsprechend die Fehlermeldung aus,
  dass der Zugriff bei dieser Resource halt nur über SSL
  erfolgen darf.

Du hast in Deinem Eingangsposting geschrieben:
>Nunmehr wider Erwarten bekomme ich jedoch "Error 400 / Bad
>request".

Das ist genau die Fehlermeldung, die der Apache schickt,
weil Du auf die Resource _ohne_ SSL zugreifen möchtest. Der
Apache verhält sich in Deinem Fall also genauso, wie Du ihn
konfiguriert hast:
1. Du hast Deinem Apache gesagt "SSLRequireSSL" (zum Zugriff
   auf die Resource ist SSL notwendig)
2. Du rufst die Resource ohne SSL auf (Du verwendest in
   Deinem Beispiel "http", nicht "https").
3. Ergebnis: Die Auslieferung ohne SSL wird unterbunden
   (forbidden) und stattdessen gibt's ne Fehlermeldung.

Max hat nochmal ein schönes Anwendungsbeispiel für den
Einsatz der Direktive "SSLRequireSSL" gepostet.

Ebenfalls frohe Weihnachten
 Marcus Reimann
 M. Reimann Systemberatung
 http://www.reimann-systemberatung.de


--------------------------------------------------------------------------
                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
--------------------------------------------------------------------------


Mime
View raw message