Freigeben über


Konfigurieren von HTTP und HTTPS

Für die Verwendung von Windows Communication Foundation (WCF) über HTTP muss entweder ein Host, etwa Internetinformationsdienste (IIS), verwendet werden, oder die HTTP-Einstellungen müssen manuell über die HTTP-Server-API konfiguriert werden. In diesem Dokument wird das manuelle Konfigurieren von WCF für die Verwendung von HTTP und HTTPS beschrieben.

Welches Tool zum Konfigurieren der HTTP-Einstellungen verwendet wird, hängt vom Betriebssystem des Computers ab.

Verwenden Sie unter Windows Server 2003 oder Windows XP das Tool "HttpCfg.exe". Unter Windows Server 2003 ist dieses Tool bereits installiert. Wenn Sie Windows XP verwenden, können Sie das Tool unter Windows XP Service Pack 2-Supporttools (möglicherweise in englischer Sprache) herunterladen. Weitere Informationen finden Sie unter . Httpcfg-Übersicht (möglicherweise in englischer Sprache).

Unter Windows Vista werden diese Einstellungen mithilfe des Tools "Netsh.exe" konfiguriert.

Konfigurieren eines SSL-Zertifikats

Das Secure Sockets Layer (SSL)-Protokoll verwendet Zertifikate auf Client und Server, um Verschlüsselungsschlüssel zu speichern. Der Server muss ein SSL-Zertifikat bereitstellen, wenn eine Verbindung hergestellt wird, damit der Client die Identität des Servers überprüfen kann. Der Server kann ebenfalls ein Zertifikat vom Client anfordern, so dass eine wechselseitige Authentifizierung auf beiden Seiten der Verbindung möglich wird.

Zertifikate sind in einem zentralen Speicher entsprechend der IP-Adresse und der Anschlussnummer der Verbindung gespeichert. Die spezielle IP-Adresse 0.0.0.0 stimmt mit jeder IP-Adresse für den lokalen Computer überein. Beachten Sie, dass der Zertifikatspeicher URLs nicht anhand der Pfade unterscheidet. Dienste mit der gleichen Kombination von IP-Adresse und Anschlussnummer müssen die gleichen Zertifikate verwenden, auch wenn sich der Pfad in der URL dieser Dienste unterscheidet.

Schritt-für-Schritt-Anweisungen finden Sie unter Gewusst wie: Konfigurieren eines Anschlusses mit einem SSL-Zertifikat.

Konfigurieren von Namespacereservierungen

Eine Namespacereservierung weist die Rechte für einen Teil des HTTP-URL-Namespace einer bestimmten Gruppe von Benutzern zu. Eine Reservierung gibt diesen Benutzern das Recht, Dienste zu erstellen, die diesen Teil des Namespaces überwachen. Reservierungen sind URL-Präfixe, was bedeutet, dass die Reservierung dem Reservierungspfad untergeordnete Pfade abdeckt. Namespacereservierungen eröffnen zwei Möglichkeiten, Platzhalter zu verwenden. In der HTTP-Server-API-Dokumentation findet sich eine Beschreibung der Auflösungsreihenfolge von Namespaceansprüchen, die Platzhalter verwenden (Seite möglicherweise auf Englisch).

Eine laufende Anwendung kann eine ähnliche Anforderung stellen, um Namespaceregistrierungen hinzuzufügen. Registrierungen und Reservierungen konkurrieren um Teile des Namespaces. Eine Reservierung kann entsprechend der Auflösungsreihenfolge Vorrang vor einer Registrierung haben. Weitere Informationen hierzu finden Sie unter Auflösungsreihenfolge von Namespaceansprüchen, die Platzhalter verwenden (Seite möglicherweise auf Englisch). In diesem Fall blockiert die Reservierung in der laufenden Anwendung den Empfang von Anforderungen.

Unter Windows XP oder Windows Server 2003

Verwenden Sie den Befehl httpcfg.exe set urlacl, um Namespacereservierungen zu ändern. Die Dokumentation der Windows-Supporttools (Seite möglicherweise auf Englisch) erklärt die Syntax des Tools Httpcfg.exe. Zur Änderung der Reservierungsrechte für einen Teil des Namespaces sind entweder Administratorrechte oder der Besitz dieses Teils des Namespaces erforderlich. Anfänglich gehört der gesamte HTTP-Namespace dem lokalen Administrator.

Hier die Syntax des Befehls Httpcfg mit der set urlacl-Option

httpcfg set urlacl /u {http://URL:Port/ | https://URL:Port/} /aACL

Der /u-Parameter ist für die Verwendung von set urlacl erforderlich. Der Parameter akzeptiert eine Zeichenfolge, die einen vollqualifizierten URL enthält, der als Datensatzschlüssel für die vorzunehmende Reservierung dient.

Der /a-Parameter ist auch für die Verwendung von set urlacl erforderlich. Der Parameter akzeptiert eine Zeichenfolge, die eine Zugriffssteuerungsliste in Form einer SDDL-Zeichenfolge (Security Descriptor Definition Language) enthält.

Hier ein Beispiel für die Verwendung dieses Befehls.

httpcfg.exe set urlacl /u http://myhost:8000/ /a "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"

Unter Windows Vista

Wenn Sie Windows Vista ausführen, können Sie stattdessen das Tool Netsh.exe verwenden. Hier ein Beispiel für die Verwendung dieses Befehls.

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user

Konfigurieren der IP-Überwachungsliste

Die HTTP-Server-API verbindet eine IP-Adresse und einen Anschluss erst dann, wenn ein Benutzer eine URL registriert. Standardmäßig verbindet die HTTP-Server-API mit dem Anschluss in der URL für alle IP-Adressen des Computers. Ein Konflikt tritt auf, wenn eine Anwendung, die die HTTP-Server-API nicht verwendet, sich vorher mit dieser Kombination von IP-Adresse und -Anschluss verbunden hat. Die IP-Überwachungsliste ermöglicht WCF-Diensten, mit Anwendungen zu koexistieren, die einen Anschluss für einige der IP-Adressen des Computers verwenden. Enthält die IP-Überwachungsliste irgendwelche Einträge, verbindet die HTTP-Server-API nur mit den IP-Adressen, die in der Liste angegeben sind. Die Änderung der IP-Überwachungsliste erfordert Administratorrechte.

Unter Windows XP oder Windows Server 2003

Verwenden Sie das httpcfg-Tool, um die IP-Überwachungsliste zu ändern, wie im folgenden Beispiel gezeigt. Die Dokumentation der Windows-Supporttools (Seite möglicherweise auf Englisch) erklärt die Syntax des Tools Httpcfg.exe.

httpcfg.exe set iplisten -i 0.0.0.0:8000

Unter Windows Vista

Verwenden Sie das netsh-Tool, um die IP-Überwachungsliste zu ändern, wie im folgenden Beispiel gezeigt:

netsh http add iplisten ipaddress=0.0.0.0:8000

Andere Konfigurationseinstellungen

Die selbstgehostete HTTP-Adressierung für WCF ist nicht in die Windows-Firewall integriert. Der Firewallkonfiguration muss eine Ausnahme hinzugefügt werden, um eingehende Verbindungen mit einer bestimmten URL zuzulassen.

Wird die WsDualHttpBinding eingesetzt, verwendet die Clientverbindung Standardwerte, die mit Namespacereservierungen und der Windows-Firewall kompatibel sind. Wenn Sie sich dafür entscheiden, die Clientbasisadresse einer dualen Verbindung anzupassen, müssen Sie auch die HTTP-Einstellungen des Clients so konfigurieren, dass sie der neuen Adresse entsprechen.

Die HTTP-Server-API bietet einige erweiterte Konfigurationseinstellungen, die über HttpCfg nicht verfügbar sind. Diese Einstellungen sind in der Registrierung gespeichert und gelten für alle Anwendungen, die auf Systemen laufen, die HTTP-Server-APIs verwenden. Weitere Informationen über diese Einstellungen finden Sie unter Http.sys-Registrierungseinstellungen für IIS (Seite möglicherweise auf Englisch). Die meisten Benutzer sollten diese Einstellungen nicht ändern müssen.

Probleme bezüglich Windows XP

IIS unterstützt keine Anschlussfreigabe unter Windows XP. Wird IIS ausgeführt, und ein WCF-Dienst versucht, einen Namespace mit dem gleichen Anschluss zu verwenden, schlägt der Start des WCF-Diensts fehl. Sowohl IIS als auch WCF verwenden standardmäßig den Anschluss 80. Entweder ändern Sie die Anschlusszuweisung für einen der Dienste, oder Sie verwenden die IP-Überwachungsliste, um den WCF-Dienst einer Netzwerkkarte zuzuweisen, die nicht von IIS verwendet wird. IIS 6.0 und höher wurde für die Verwendung der HTTP-Server-APIs neu konzipiert.

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren eines Anschlusses mit einem SSL-Zertifikat

Referenz

WsDualHttpBinding