<Zugriff> auf Zugriffssicherheit
Übersicht
Mit dem <access>
-Element können Sie konfigurieren, ob eine Website oder Anwendung Clientzertifikate für die Authentifizierung verwendet, und Sie können die für die Verschlüsselung dieser Zertifikate erforderliche kryptografische Stärke definieren.
Das <access>
-Element enthält ein sslFlags-Attribut, das Sie auf einen der folgenden Werte festlegen können:
- Keine. Diese Standardeinstellung deaktiviert SSL für die Site oder Anwendung.
- Ssl. Die Site oder Anwendung erfordert SSL.
- SslNegotiateCert. Die Site oder Anwendung akzeptiert Clientzertifikate für die Authentifizierung.
- SslRequireCert. Für die Site oder Anwendung sind Clientzertifikate für die Authentifizierung erforderlich.
- Ssl128. Die Site oder Anwendung erfordert eine 128-Bit-SSL-Zertifikatverschlüsselung.
Sie können das Zugriffselement verwenden, um eine Site, eine Anwendung oder ein virtuelles Verzeichnis zu konfigurieren, um Clientzertifikate zu benötigen. Legen Sie dazu eine HTTPS-Bindung für Ihre Site oder Anwendung fest und fordern Sie dann Zertifikate von einer Zertifizierungsstelle an und empfangen Sie sie. Die Zertifikate können Internetserverzertifikate, Domänenserverzertifikate oder selbstsignierte Serverzertifikate sein. Internetserverzertifikate erfordern eine Zertifizierungsstelle, die Ihren bzw. Ihre Server nach dem Anfordern ein Zertifikat ausstellt. Ein Domänenserverzertifikat wird von einem Zertifizierungsstellencomputer ausgestellt, der auf der Domäne Ihres Unternehmens ausgeführt wird, und kann Ihnen dabei helfen, den Zugriff auf interne Ressourcen nur für Mitarbeiter zu steuern, die das Zertifikat installiert haben. Sie können ein selbstsigniertes Zertifikat verwenden, um Probleme mit Drittanbieterzertifikaten zu beheben, Internetinformationsdienste (IIS) 7 remote zu verwalten, einen sicheren privaten Kanal zwischen dem Server und einer ausgewählten Benutzergruppe zu erstellen oder Anwendungsfeatures zu testen, die auf SSL basieren.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <access> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <access> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <access> -Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <access> -Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <access> -Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | Das <access> -Element ersetzt die IIS 6.0 Metabasiseigenschaften SSLAlwaysNegoClientCert und AccessSSLFlags. |
Setup
Das <access>
-Element ist in der Standardinstallation von IIS 7 enthalten.
Gewusst wie
Anfordern von Secure Sockets Layer
Öffnen Sie den Internet Information Services (IIS) Manager:
Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:
- Klicken Sie in der Taskleiste auf Server-Manager, dann auf Tools und dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows 8 oder Windows 8.1 verwenden:
- Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
- Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung und dann auf den Internet Information Services (IIS) Manager.
Wenn Sie Windows Vista oder Windows 7 verwenden:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
Wechseln Sie im Bereich Verbindungen zu der Site, Anwendung oder zu dem Verzeichnis, für die Sie SSL-Anforderungen konfigurieren möchten. SSL kann nicht auf Serverebene konfiguriert werden.
Klicken Sie im Bereich SSL-Einstellungen auf SSL anfordern.
Klicken Sie im Bereich Aktionen auf Übernehmen.
Konfiguration
Sie können das <access>
-Element auf Serverebene in der Datei ApplicationHost.config oder auf Site-, Anwendungs- oder Verzeichnisebene in der entsprechenden Web.config-Datei konfigurieren.
Attribute
Attribut | Beschreibung | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sslFlags |
Die zulässigen Werte für das sslFlags-Attribut sind im Folgenden aufgeführt. Der Standardwert ist None .
|
Untergeordnete Elemente
Keine.
Konfigurationsbeispiel
Im folgenden Konfigurationsbeispiel, wenn es in der Datei ApplicationHost.config enthalten ist, ist eine SSL-Verbindung zwischen einer Website mit dem Namen Contoso und allen Clientbrowsern erforderlich.
<location path="Contoso">
<system.webServer>
<security>
<access sslFlags="ssl">
</security>
</system.webServer>
</location>
Beispielcode
In den folgenden Beispielen machen SSL erforderlich, um auf eine Website mit dem Namen Contoso zuzugreifen.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/access /sslFlags:"Ssl" /commit:apphost
Hinweis
Sie müssen unbedingt den Commitparameterapphost
festlegen, wenn Sie AppCmd.exe verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei ApplicationHost.config festgelegt.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", "Contoso");
accessSection["sslFlags"] = @"Ssl";
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Contoso")
accessSection("sslFlags") = "Ssl"
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso");
accessSection.Properties.Item("sslFlags").Value = "Ssl";
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso")
accessSection.Properties.Item("sslFlags").Value = "Ssl"
adminManager.CommitChanges()