Vorgehensweise: Einrichten von Clientzertifikaten
Auf dieser Seite
Zielsetzung
Betrifft
Verwendung dieses Moduls
Zusammenfassung
Erstellen einer einfachen Webanwendung
Konfigurieren der Webanwendung für die Anforderung von Clientzertifikaten
Anfordern und Installieren eines Clientzertifikats
Prüfen der Funktion des Clientzertifikats
Weitere Ressourcen
Zielsetzung
Themenbereiche:
Anfordern und Installieren eines clientseitigen Zertifikats
Erstellen einer ASP.NET-Webanwendung, für die clientseitige Zertifikate erforderlich sind
Betrifft
Die Informationen in diesem Modul gelten für folgende Produkte und Technologien:
Microsoft® Windows® XP oder Windows 2000 Server (mit Service Pack 3) und höhere Betriebssysteme
Microsoft Internetinformationsdienste (IIS) 5.0
Microsoft Zertifikatdienste (sofern Sie eigene Zertifikate erzeugen müssen)
Microsoft .NET Framework Version 1.0 (mit Service Pack 2) und höhere Versionen
Microsoft Visual C#® .NET
Verwendung dieses Moduls
Empfehlungen für eine erfolgreiche Arbeit mit diesem Modul:
Sie müssen über Erfahrung in der Verwendung von Visual C# .NET und Microsoft Visual Studio® .NET verfügen.
Sie sollten über Erfahrung in der Entwicklung von Webanwendungen mithilfe von ASP.NET verfügen.
Sie müssen Erfahrung in der Konfiguration von IIS besitzen.
Sie benötigen Zugriff auf eine Certification Authority (CA oder Zertifizierungsstelle), beispielsweise Microsoft Zertifikatdienste, falls Sie neue Clientzertifikate erzeugen möchten.
Sie müssen sich entscheiden, bei welcher kommerziellen CA Sie ein Clientzertifikat anfordern möchten, sofern Sie nicht Ihre eigenen Zertifikat erzeugen möchten. Einige CAs erheben für diese Dienstleistung Gebühren.
Sie müssen über einen Webserver mit einem installierten SSL-Zertifikat verfügen. Lesen Sie "Vorgehensweise: Einrichten von SSL auf einem Webserver"", um detaillierte Informationen zu erhalten.
Einen Vergleich von Clientzertifikaten und anderen Formen der Authentifizierung finden Sie in Modul 2, "Sicherheitsmodell für ASP.NET-Anwendungen".
Zusammenfassung
Mit Clientzertifikaten steht ein ausgezeichneter Authentifizierungsmechanismus für Webanwendungen zur Verfügung. Ein Browser oder eine andere Clientanwendung muss ein gültiges Zertifikat vorlegen, bevor der Zugriff auf die Anwendung gestattet wird; dadurch wird vermieden, dass der Client Benutzernamen und Kennwörter angeben muss. Daher sind clientseitige Zertifikate besonders hilfreich bei der Erstellung sicherer Webdienste, auf die andere Clientanwendungen zugreifen.
In diesem Modul wird ausführlich erläutert, wie ein clientseitiges Zertifikat abgerufen und installiert wird. Außerdem erfahren Sie, wie eine Webanwendung erstellt wird, für die clientseitige Zertifikate erforderlich sind.
Erstellen einer einfachen Webanwendung
In diesem Verfahren erstellen Sie eine einfache Webanwendung zu Testzwecken.
So erstellen Sie eine einfache Webanwendung
Starten Sie Visual Studio .NET, und erstellen Sie eine neue Visual C# ASP.NET-Webanwendung mit Namen SecureApp.
Ziehen Sie aus der Toolbox ein Bezeichnungsfeld-Steuerelement auf das Webformular WebForm1.aspx, und legen Sie dessen ID-Eigenschaft auf message fest.
Ziehen Sie ein zweites Bezeichnungsfeld auf WebForm1.aspx, und legen Sie dessen ID-Eigenschaft auf certData fest.
Fügen Sie der Ereignisprozedur Page_Load den nachfolgenden Code hinzu.
string username; username = User.Identity.Name; message.Text = "Willkommen " + username; HttpClientCertificate cert = Request.ClientCertificate; if (cert.IsPresent) { certData.Text = "Clientzertifikat abgerufen"; } else { certData.Text = "Kein Clientzertifikat"; }
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Starten Sie Internet Explorer, und navigieren Sie zu https://localhost/SecureApp/WebForm1.aspx.
Die Seite sollte mit den Meldungen "Willkommen" und "Kein Clientzertifikat" angezeigt werden (es wird kein Benutzername angezeigt, da der Benutzer nicht authentifiziert wurde).Schließen Sie Internet Explorer.
Konfigurieren der Webanwendung für die Anforderung von Clientzertifikaten
In diesem Verfahren wird Internetinformationsdienste (IIS) verwendet, um das virtuelle Verzeichnis der Webanwendung für die Anforderung von Zertifikaten zu konfigurieren.
Das Verfahren setzt voraus, dass auf dem Webserver ein gültiges Zertifikat installiert ist. Weitere Informationen über das Installieren von Webserverzertifikaten finden Sie unter "Vorgehensweise. Einrichten von SSL auf einem Webserver".
So konfigurieren Sie das virtuelle Verzeichnis der Webanwendung für die Anforderung von Clientzertifikaten
Starten Sie IIS auf dem Webdienst-Hostcomputer.
Wechseln Sie zum virtuellen Verzeichnis SecureApp.
Klicken Sie mit der rechten Maustaste auf SecureApp, und klicken Sie dann auf Eigenschaften.
Klicken Sie auf die Registerkarte Verzeichnissicherheit.
Klicken Sie unter Sichere Kommunikation auf Bearbeiten.
Wenn der Befehl Bearbeiten nicht zur Verfügung steht, ist wahrscheinlich kein Webserverzertifikat installiert.
Aktivieren Sie das Kontrollkästchen Sicheren Kanal verlangen (SSL).
Wählen Sie die Option Clientzertifikate verlangen.
Klicken Sie auf OK und dann noch einmal auf OK.
Klicken Sie im Dialogfeld Vererbungsüberschreibungen auf Alles auswählen, und klicken Sie dann auf OK, um das Eigenschaftendialogfeld von SecureApp zu schließen.
Hiermit werden die neuen Sicherheitseinstellungen allen Unterverzeichnissen im virtuellen Stammverzeichnis zugewiesen.Um sich zu vergewissern, dass die Website ordnungsgemäß konfiguriert wurde, starten Sie Internet Explorer und navigieren Sie (unter Verwendung von HTTPS) zu https://localhost/Secureapp/Webform1.aspx.
Nun zeigt Internet Explorer das Dialogfeld Clientauthentifizierung an, in dem Sie aufgefordert werden, ein Clientzertifikat auszuwählen. Da noch kein Clientzertifikat installiert wurde, klicken Sie auf OK und bestätigen die Fehlermeldung, die besagt, dass für die Seite ein Clientzertifikat benötigt wird.
Schließen Sie Internet Explorer.
Anfordern und Installieren eines Clientzertifikats
In diesem Verfahren wird ein clientseitiges Zertifikat installiert. Sie können ein Zertifikat von einer beliebigen Zertifizierungsstelle verwenden, oder Sie können mithilfe der Microsoft Zertifikatdienste ein eigenes Zertifikat erzeugen, wie in den folgenden Abschnitten erläutert.
In diesem Verfahren wird davon ausgegangen, dass die Microsoft Zertifikatdienste für ausstehende Anforderungen konfiguriert sind, was bedeutet, dass das Zertifikat explizit von einem Administrator ausgestellt werden muss. Die Microsoft Zertifikatdienste können auch so konfiguriert werden, dass Zertifikate automatisch in Reaktion auf Zertifikatsanforderungen ausgestellt werden.
So prüfen Sie den Zertifikatsanforderungsstatus
Klicken Sie auf dem Computer, auf dem die Microsoft Zertifikatdienste ausgeführt werden, in der Programmgruppe Verwaltung auf Zertifizierungsstelle.
Erweitern Sie Zertifizierungsstelle (Lokal), klicken Sie mit der rechten Maustaste auf die Zertifizierungsstelle, und klicken Sie dann auf Eigenschaften.
Klicken Sie auf die Registerkarte Richtlinienmodul, und klicken Sie dann auf Konfigurieren.
Aktivieren Sie die Standardaktion.
Im folgenden Verfahren wird davon ausgegangen, dass die Option Den Status der Zertifikatsanforderung auf "Ausstehend" setzen. Der Administrator muss das Zertifikat explizit ausstellen ausgewählt wurde.
So fordern Sie ein clientseitiges Zertifikat an
Starten Sie Internet Explorer, und navigieren Sie zu http://Hostname/CertSrv, wobei Hostname für den Namen des Computers steht, auf dem Microsoft Zertifikatdienste installiert ist.
Klicken Sie auf Zertifikat anfordern und dann auf Weiter.
Klicken Sie auf der Seite Anforderungstyp wählen auf Benutzerzertifikat, und klicken Sie dann auf Weiter.
Klicken Sie auf Senden, um die Anforderung fertig zu stellen.
Schließen Sie Internet Explorer.
So stellen Sie das clientseitige Zertifikat aus
Starten Sie das Tool für die Zertifizierungsstelle aus der Programmgruppe Verwaltung.
Erweitern Sie Ihre Zertifizierungsstelle, und wählen Sie den Ordner Ausstehende Anforderungen.
Klicken Sie auf die soeben übermittelte Zertifikatsanforderung, zeigen Sie im Menü Aktion auf Alle Tasks, und klicken Sie auf Ausstellen.
Vergewissern Sie sich, dass das Zertifikat im Ordner Ausgestellte Zertifikate angezeigt wird, und doppelklicken Sie dann darauf, um es anzuzeigen.
Klicken Sie auf der Registerkarte Details auf In Datei kopieren, und speichern Sie das Zertifikat als Base64-codiertes X.509-Zertifikat.
Schließen Sie das Eigenschaftenfenster des Zertifikats.
Schließen Sie das Tool für die Zertifizierungsstelle.
So installieren Sie das clientseitige Zertifikat
Starten Sie zum Anzeigen des Zertifikats Windows Explorer, suchen Sie die im vorangegangenen Verfahren gespeicherte CER-Datei, und doppelklicken Sie darauf.
Klicken Sie auf Zertifikat installieren, und klicken Sie dann auf der ersten Seite des Zertifikatsimport-Assistenten auf Weiter.
Wählen Sie Zertifikatspeicher automatisch auswählen (auf dem Zertifikatstyp basierend), und klicken Sie dann auf Weiter.
Klicken Sie auf Fertig stellen, um den Assistenten zu beenden. Schließen Sie die Bestätigungsmeldung, und klicken Sie auf OK, um das Zertifikat zu schließen.
Prüfen der Funktion des Clientzertifikats
Mit diesem Verfahren wird sichergestellt, dass Sie unter Verwendung eines Clientzertifikats auf die Anwendung SecureApp zugreifen können.
So prüfen Sie die Funktion des Clientzertifikats
Starten Sie Internet Explorer, und navigieren Sie zu https://localhost/SecureApp/WebForm1.aspx.
Vergewissern Sie sich, dass die Webseite ordnungsgemäß angezeigt wird.
Weitere Ressourcen
Weitere Informationen finden Sie unter "Vorgehensweise. Einrichten von SSL auf einem Webserver" in diesem Handbuch.