Direkt zum Hauptbereich

SSL/https erzwingen mit IIS (Windows Server 2003)

Kürzlich musste ich eine Webapplikation rein über SSL (https, Port 443) zugänglich machen und eine automatische Weiterleitung an die sichere Adresse einstellen. Ich fragte mich, wie ich das machen könnte, ohne zwei virtuelle Websites zu erstellen.

Ich habe das auf folgende Weise bewerkstelligt. Unter Eigenschaften der Website im Reiter "Verzeichnissicherheit" im letzten Abschnitt "Sichere Kommunikation" den Bearbeiten-Knopf drücken und dort einstellen, dass SSL erforderlich ist (erste Checkbox). Achtung: Das bewirkt, dass alle http-(Port 80)-Anfragen einen HTTP-Fehler im Browser bewirken und zwar den Fehler mit dem Code 403;4 ("Forbidden SSL required"). Diesen Umstand kann man nun ausnützen, indem man eine benutzerdefinierte Fehlermeldung einstellt.

Dazu erstellen wir zuerst ein simples asp-Script

<%@ Language=VBScript %>
<%
If Request.ServerVariables("SERVER_PORT")=80 Then
   Dim strSecureURL
   strSecureURL = "
https://"
   strSecureURL=strSecureURL & Request.ServerVariables("SERVER_NAME") & "/"
   Response.Redirect strSecureURL
End If
%>

und nennen es "jumpssl.asp". Wir müssen es außerdem in einen eigenen Ordner (z.B. "redirect") legen, da wir später eine kleine Änderung an den Sicherheitsseinstellungen des Ordners vornehmen müssen.

Unter "Benutzerdefinierte Fehler" der Website den Fehler 403;4 bearbeiten und dort "URL" auswählen und die URL "/redirect/jumssl.asp" eintragen. Das bewirkt, dass statt dem Fehler dem Browser eine Weiterleitung gesendet wird.

Wir dürfen nicht vergessen, für das Verzeichnis "redirect" das Häkchen "SSL erforderlich" in der Verzeichnissicherheit zu entfernen. Ansonsten schickt IIS auch eine 403;3-Fehlermeldung, wenn die jumpssl.asp Seite ausgeführt werden soll.

Der beschriebene Mechanismus sollte sowohl mit ASP.NET als auch unter klassischen ASP funktionieren.

Kommentare

Anonym hat gesagt…
Jetzt darfst du nur hoffen, dass kein User die Anwendung verwendet, der sowas wie Norton Internet Security, Outpost oder ähnliches Zeug verwendet - dann bekommst du bei Request.ServerVariables nämlich nix raus, weil das einfach geblockt wird.

Ein Restrisiko bleibt also.

Beliebte Posts aus diesem Blog

Serverseitige Kommentare in ASP.NET

Wer einen Code-Block in der HTML/XML-Ansicht in aspx-Seiten oder ascx-Controls kommentieren möchte, kann dies mit folgenden Zeichenfolgen machen: <%-- Auskommentiertes HTML/CODE/Markup. Alles innerhalb dieses Blockes wird von ASP.NET nicht geparst oder kompiliert. <%# Eval(“SomeProperty”) %> --%> Sehr hilfreich, wenn man das weiß und anwenden kann. Normale HTML-Kommentarzeichen haben den großen Nachteil, im Quellcode des Browsers aufzuscheinen.

Befehle der Eingabeaufforderung

Wer kann sie alle aufzählen. Auswendig bestimmt nicht. 95% davon habe ich wohl noch nie im Leben verwendet: ASSOC Zeigt Dateierweiterungszuordnungen an bzw. ändert sie. AT Legt eine Zeit fest, zu der Befehle und Programme auf diesem Computer ausgeführt werden. ATTRIB Zeigt Dateiattribute an bzw. ändert sie. BREAK Schaltet die erweiterte Überprüfung für STRG+C ein bzw. aus. CACLS Zeigt Datei-ACLs (Access Control List) an bzw. ändert sie. CALL Ruft eine Batchdatei aus einer anderen Batchdatei heraus auf. CD Zeigt den Namen des aktuellen Verzeichnisses an bzw. ändert diesen. CHCP Zeigt die aktive Codepagenummer an bzw. legt diese fest. CHDIR Zeigt den Namen des aktuellen Verzeichnisses an bzw. ändert diesen. CHKDSK überprüft einen Datenträger und zeigt einen Statusbericht an. CHKNTFS Zeigt die Überprüfung des Datenträgers beim Start an bzw. verändert sie. CLS Löscht den Bildschirminhalt. CMD Startet eine neue Instanz des Windows-Befehlsinterpreters. COLOR Legt die Hintergrund- und Vorde

Chili con carne - Rezept

Hier einmal etwas ganz anderes: ein Rezept, um Chili con carne zuzubereiten. Benötigt werden folgende Zutaten für vier Personen: 250 g Zwiebeln 1 grüne Paprikaschote 4 EL Öl 500 g Rinderhackfleisch 1 TL Rosenpaprika 2 Knoblauchzehen 1 große Dose geschälte Tomaten 1 Dose Tomatenmark 140 g 2 Dosen Kidney-Bohnen à 265 g (Abtropfgewicht) 1 Dose Chili Bohnen 1/4 l Brühe (Instant) Chilipulver etwas Salz Die Zwiebeln schälen und in Ringe schneiden. Die grüne Paprikaschote entkernen, waschen und in Stücke schneiden. Den Stielansatz der Chilischoten abschneiden. Anschließend die Schoten der Länge nach aufschlitzen, die Kerne entfernen und in kleine Stücke schneiden (Anmkerkung: Vorsicht, die Schoten sind sehr scharf, Hände waschen und darauf achten, nicht die Augen zu berühren). In einer großen Pfanne das Öl erhitzen. Das Rinderhackfleisch dazugeben, 10 Minuten braun anbraten und anschließend salzen. Mit dem Rosenpaprika würzen und alles in einen großen Topf geben. Zwiebel, Paprika und Chili im