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

Thomas 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

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 Vordergrundfarben für …

Was ist der Unterschied zwischen Zement und Beton?

Falls Ihre Kinder einmal danach fragen: Zement wird benötigt, um Beton herzustellen. Zement ist das Bindemittel im Verbundwerkstoff Beton. Er wird mit Sand oder Kies (manchmal auch Splitt oder Glas) und Wasser zu Beton gemischt. Im frisch abgemischten Zustand ist Beton mehr oder weniger verformbar. (abgebundener Beton).Sobald sich die Bestandteile des Zements in Wasser lösen, beginnt ein Abbindevorgang, der im Wesentlichen folgenden Hydrolyseprozess darstellt:CaO +H2O ergibt Ca(OH)2 Ca(OH)2 + CO2 ergibt CaCO3
und einen Hydradationsprozess CaO x SiO2 + H2O ergibt CaO x SiO2 x H2O --> fein verfilzte NadelnDabei härtet der Beton aus und gewinnt an Festigkeit.Aus Zement wird auch der Baustoff Mörtel hergestellt.Aus chemischer Sicht betrachtet ist Zement hauptsächlich kieselsaures Calcium mit Anteilen an Aluminium und Eisen, das als kompliziertes Stoffgemisch vorliegt. Im Allgemeinen enthält er auch Anteile an Sulfaten.

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.