Sönke Tesch: Problem bei Kombination SSL + .htaccess

Beitrag lesen

Genau das ist das Problem. Ich möchte ja lediglich irgendwie Anfragen an den http Server zunächst an den https weiterleiten, und erst danach soll die Eingabe der Benutzerdaten erfolgen. Ginge das mit der htaccess? Wenn ja wie?

Ich habe mich zugegebenermaßen gerade die erste Stunde mit dem SSL-Kram beschäftigt, aber soweit ich das bis hier überblicke (man möge mich berichtigen), wäre die einfachste Option, daß Du die .htaccess-Authenifizierung rausschmeißt und sie stattdessen in Dein(e) PHP-Skript(e) übernimmst.
Du kannst im PHP-Skript abfragen, ob SSL für die Verbindung aktiv ist. Falls ja, machst Du die Authentifizierung, falls nicht, sendest Du eine Weiterleitung and die https:-Adresse.
Nachteil: Alles, was im Verzeichnis nicht von PHP verarbeitet wird (Grafiken zum Beispiel, aber auch .html-Sachen), lässt sich auch ohne SSL _und_ vor allen Dingen ohne Authentifizierung abrufen.

Zweite Möglichkeit: SSLRequireSSL in die .htaccess. Damit kann dieses Verzeichnis nur noch per SSL abgerufen werden. Das müsste rein theoretisch noch vor der Authentifizierung greifen, allerdings gibt es hier keine automatische Weiterleitung - womit sich aber immerhin die Lernkurve der Anwender deutlichst erhöht; wer ständig Fehlermeldungen erhält, lernt schneller, https: einzutippen statt http:.

Dritte Möglichkeit:
Zwei Webserver, einer mit SSL, einer ohne. Das zu sichernde Verzeichnis liegt nur auf dem SSL-Server, der andere hat dort keine Dateien sondern nur eine Weiterleitung zum SSL-Server.

Über <virtualhost>-Einträge kann man diese Geschichte anscheinend nur lösen, wenn die jeweilige Domain eine echte eigene IP-Adresse hat. Dann wären die Einträge wohl:

<virtualhost servername:80>
  Redirect permanent / https://servername/
  ..
  </virtualhost>

und

<virtualhost servername:443>
  SSLRequireSSL
  [und die Authentifizierungsgeschichte..]
  ..
  </virtualhost>

So, hoffentlich war das nicht allzu viel Unfug :) Ich bitte um hilfreiche Kommentare.

Gruß,
  soenk.e