Freigeben über


Konfigurieren von HTTP und HTTPS

WCF-Dienste und -Clients können über HTTP und HTTPS kommunizieren. Die HTTP/HTTPS-Einstellungen werden mithilfe von Internetinformationsdiensten (IIS) oder mithilfe eines Befehlszeilentools konfiguriert. Wenn ein WCF-Dienst unter IIS gehostet wird, können HTTP- oder HTTPS-Einstellungen in IIS konfiguriert werden (mithilfe des Tools inetmgr.exe). Wenn ein WCF-Dienst selbst gehostet wird, werden HTTP- oder HTTPS-Einstellungen mithilfe eines Befehlszeilentools konfiguriert.

Sie sollten mindestens eine URL-Registrierung konfigurieren und eine Firewall-Ausnahme für die URL hinzufügen, die Ihr Dienst verwenden wird. Sie können diese Einstellungen mit dem Werkzeug Netsh.exe konfigurieren.

Konfigurieren von Namespace-Reservierungen

Die 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 Namespace überwachen. Reservierungen sind URL-Präfixe, was bedeutet, dass die Reservierung alle Unterpfade des Reservierungspfads abdeckt. Namespacereservierungen lassen zwei Möglichkeiten zur Verwendung von Platzhaltern zu. In der HTTP-Server-API-Dokumentation wird die Reihenfolge der Auflösung zwischen Namespaceansprüchen beschrieben, die Platzhalter enthalten.

Eine ausgeführte Anwendung kann eine ähnliche Anforderung zum Hinzufügen von Namespaceregistrierungen erstellen. Registrierungen und Reservierungen konkurrieren um Teile des Namespace. Eine Reservierung kann Vorrang vor einer Registrierung gemäß der Auflösungsreihenfolge haben, die in der Auflösungsreihenfolge zwischen Namespaceansprüchen angegeben ist, die Platzhalter enthalten. In diesem Fall blockiert die Reservierung den Empfang von Anforderungen für die ausgeführte Anwendung.

Im folgenden Beispiel wird das Werkzeug Netsh.exe verwendet:

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

Mit diesem Befehl wird eine URL-Reservierung für den angegebenen URL-Namespace für das Konto DOMAIN\user hinzugefügt. Weitere Informationen zur Verwendung des Befehls netsh erhalten Sie, indem Sie netsh http add urlacl /? eine Eingabeaufforderung eingeben und die Eingabetaste drücken.

Konfigurieren einer Firewall-Ausnahme

Beim Selbsthosten eines WCF-Diensts, der über HTTP kommuniziert, muss der Firewallkonfiguration eine Ausnahme hinzugefügt werden, um eingehende Verbindungen mit einer bestimmten URL zuzulassen.

Konfigurieren von SSL-Zertifikaten

Das SSL-Protokoll (Secure Sockets Layer) verwendet Zertifikate auf dem Client und Server, um Verschlüsselungsschlüssel zu speichern. Der Server stellt sein SSL-Zertifikat bereit, wenn eine Verbindung hergestellt wird, damit der Client die Serveridentität überprüfen kann. Der Server kann auch ein Zertifikat vom Client anfordern, um die gegenseitige Authentifizierung beider Seiten der Verbindung zu gewährleisten.

Zertifikate werden in einem zentralen Speicher entsprechend der IP-Adresse und der Portnummer der Verbindung gespeichert. Die spezielle IP-Adresse 0.0.0.0 stimmt mit einer beliebigen IP-Adresse für den lokalen Computer überein. Beachten Sie, dass der Zertifikatspeicher URLs nicht anhand des Pfads unterscheidet. Dienste mit derselben Kombination aus IP-Adresse und Port müssen Zertifikate gemeinsam nutzen, auch wenn der Pfad in der URL für die Dienste unterschiedlich ist.

Eine Schritt-für-Schritt-Anleitung finden Sie unter Gewusst wie: Konfigurieren eines Ports mit einem SSL-Zertifikat.

Konfigurieren der IP-Listenliste

Die HTTP-Server-API bindet sich erst dann an eine IP-Adresse und einen Port, wenn ein Benutzer eine URL registriert. Standardmäßig bindet die HTTP-Server-API an den Port in der URL für alle IP-Adressen des Geräts. Ein Konflikt entsteht, wenn eine Anwendung, die die HTTP-Server-API nicht verwendet, zuvor an diese Kombination aus IP-Adresse und Port gebunden wurde. Die IP-Listenliste ermöglicht die Koexistenz von WCF-Diensten mit Anwendungen, die einen Port für einige der IP-Adressen des Computers verwenden. Wenn die IP-Listenliste Einträge enthält, bindet die HTTP-Server-API nur an die IP-Adressen, die in der Liste angegeben sind. Zum Ändern der IP-Überwachungsliste sind Administratorrechte erforderlich.

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

Weitere Konfigurationseinstellungen

Bei Verwendung von WSDualHttpBindingverwendet die Clientverbindung Standardwerte, die mit Namespacereservierungen und der Windows-Firewall kompatibel sind. Wenn Sie die Client-Basisadresse einer dualen Verbindung anpassen möchten, müssen Sie auch diese HTTP-Einstellungen auf dem Client so konfigurieren, dass sie mit der neuen Adresse übereinstimmen.

Die HTTP-Server-API verfügt über einige erweiterte Konfigurationseinstellungen, die nicht über HttpCfg verfügbar sind. Diese Einstellungen werden in der Registrierung beibehalten und gelten für alle Anwendungen, die auf den Systemen ausgeführt werden, die die HTTP-Server-APIs verwenden. Informationen zu diesen Einstellungen finden Sie unter Http.sys Registrierungseinstellungen für IIS. Die meisten Benutzer müssen diese Einstellungen nicht ändern.

Siehe auch