Gewusst wie: Konfigurieren eines Anschlusses mit einem SSL-Zertifikat

Beim Erstellen eines selbst gehosteten Windows Communication Foundation (WCF)-Dienstes mit der WSHttpBinding-Klasse, die die Transportsicherheit verwendet, müssen Sie auch einen Anschluss mit einem X.509-Zertifikat konfigurieren. Wenn Sie keinen selbst gehosteten Dienst erstellen, können Sie Ihren Dienst auch über Internetinformationsdienste (IIS) hosten. Weitere Informationen finden Sie unter HTTP-Transportsicherheit.

Welches Tool zum Konfigurieren eines Anschlusses verwendet wird, hängt vom Betriebssystem des Computers ab.

Verwenden Sie unter Windows Server 2003 oder Windows XP das HttpCfg.exe-Tool. 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). Die Dokumentation der Windows-Supporttools (Seite möglicherweise auf Englisch) erklärt die Syntax des Tools Httpcfg.exe.

Verwenden Sie unter Windows Vista das bereits installierte Tool Netsh.exe.

In diesem Thema wird die Ausführung einer Reihe von Prozeduren beschrieben:

  • Bestimmen der aktuellen Anschlusskonfiguration eines Computers
  • Abrufen des Fingerabdrucks eines Zertifikats (notwendig für die beiden anschließenden Prozeduren)
  • Binden eines SSL-Zertifikats an eine Anschlusskonfiguration
  • Binden eines SSL-Zertifikats an eine Anschlusskonfiguration und Unterstützen von Clientzertifikaten
  • Löschen eines SSL-Zertifikats aus einer Anschlussnummer

Zum Ändern der auf dem Computer gespeicherten Zertifikate sind Administratorrechte erforderlich.

So ermitteln Sie, wie Anschlüsse konfiguriert sind

  1. Verwenden Sie zum Anzeigen der aktuellen Anschlusskonfiguration unter Windows Server 2003 oder Windows XP das HttpCfg.exe-Tool mit den Schaltern query und ssl, wie im folgenden Beispiel gezeigt:

    httpcfg query ssl
    
  2. Verwenden Sie zum Anzeigen der aktuellen Anschlusskonfiguration unter Windows Vista das Netsh.exe-Tool, wie im folgenden Beispiel gezeigt:

    netsh http show sslcert
    

So rufen Sie den Fingerabdruck eines Zertifikats ab

  1. Verwenden Sie das Zertifikats-MMC-Snap-In, um nach einem X.509-Zertifikat zu suchen, das eine bestimmte Clientauthentifizierungsfunktion aufweist. Weitere Informationen finden Sie unter Gewusst wie: Anzeigen von Zertifikaten mit dem MMC-Snap-In.

  2. Greifen Sie auf den Fingerabdruck des Zertifikats zu. Weitere Informationen finden Sie unter Gewusst wie: Abrufen des Fingerabdrucks eines Zertifikats.

  3. Kopieren Sie den Fingerabdruck des Zertifikats in einen Texteditor, beispielsweise den Windows-Editor.

  4. Entfernen Sie alle Leerstellen zwischen den Hexadezimalzeichen. Eine Möglichkeit besteht darin, das Suchen/Ersetzen-Feature des Editors zu nutzen, um jede Leerstelle durch ein NULL-Zeichen zu ersetzen.

So binden Sie ein SSL-Zertifikat an eine Anschlussnummer

  1. Verwenden Sie unter Windows Server 2003 oder unter Windows XP das Tool-HttpCfg.exe im Secure Sockets Layer (SSL)-Speicher im Modus "Set", um das Zertifikat an eine Anschlussnummer zu binden. Das Tool verwendet den Fingerabdruck, um das Zertifikat zu identifizieren, wie im folgenden Beispiel gezeigt.

    httpcfg set ssl -i 0.0.0.0:8012 -h 0000000000003ed9cd0c315bbb6dc1c08da5e6
    
    • Der Schalter -i hat die Syntax IP:port und weist das Tool an, das Zertifikat auf den Anschluss 8012 des Computers festzulegen. Optional können Sie die vier Nullen vor der Nummer auch durch die tatsächliche IP-Adresse des Computers ersetzen.
    • Der Schalter -h gibt den Fingerabdruck des Zertifikats an.
  2. Verwenden Sie unter Windows Vista das Netsh.exe-Tool, wie im folgenden Beispiel gezeigt:

    netsh http add sslcert ipport=0.0.0.0:8000 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} 
    
    • Der certhash-Parameter gibt den Fingerabdruck des Zertifikats an.
    • Der ipport-Parameter gibt IP-Adresse und Port an und funktioniert genau wie der beschriebene -i-Schalter des Httpcfg.exe-Tools.
    • Der appid-Parameter ist eine GUID, die verwendet werden kann, um die besitzende Anwendung zu identifizieren.

So binden Sie ein SSL-Zertifikat an eine Anschlussnummer und unterstützen Clientzertifikate

  1. Führen Sie zum Unterstützen von Clients, die die Authentifizierung mithilfe von X.509-Zertifikaten auf der Transportebene durchführen, unter Windows Server 2003 oder Windows XP die obige Prozedur aus, übergeben Sie jedoch einen zusätzlichen Befehlszeilenparameter an HttpCfg.exe, wie im folgenden Beispiel gezeigt:

    httpcfg set ssl -i 0.0.0.0:8012 -h 0000000000003ed9cd0c315bbb6dc1c08da5e6 -f 2
    

    Der Schalter -f weist die Syntax n auf, wobei "n" eine Zahl zwischen "1" und "7" ist. Bei dem Wert "2" (wie im vorherigen Beispiel gezeigt) sind Clientzertifikate auf der Transportebene aktiviert. Der Wert "3" aktiviert Clientzertifikate und ordnet die Zertifikate einem Windows-Konto zu. Das Verhalten bei anderen Werten finden Sie in der Hilfe zu HttpCfg.exe.

  2. Führen Sie zum Unterstützen von Clients, die die Authentifizierung mithilfe von X.509-Zertifikaten auf der Transportebene durchführen, unter Windows Vista die obige Prozedur aus, verwenden Sie jedoch einen zusätzlichen Parameter, wie im folgenden Beispiel gezeigt:

    netsh http add sslcert ipport=0.0.0.0:8000 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} clientcertnegotiation=enable
    

So löschen Sie ein SSL-Zertifikat aus einer Anschlussnummer

  1. Verwenden Sie das HttpCfg.exe- oder das Netsh.exe-Tool, um die Anschlüsse und Fingerabdrücke aller Bindungen auf dem Computer anzuzeigen. Verwenden Sie das Umleitungszeichen ">", um die Informationen auf den Datenträger auszugeben, wie im folgenden Beispiel gezeigt:

    httpcfg query ssl>myMachinePorts.txt
    
  2. Verwenden Sie unter Windows Server 2003 oder Windows XP das HttpCfg.exe-Tool zusammen mit den Schlüsselwörtern delete und ssl. Verwenden Sie den Schalter -i, um die IP:port-Nummer anzugeben, und den Schalter -h, um den Fingerabdruck anzugeben.

    httpcfg delete ssl -i 0.0.0.0:8005 -h 0000000000003ed9cd0c315bbb6dc1c08da5e6
    
  3. Verwenden Sie unter Windows Vista das Netsh.exe-Tool, wie im folgenden Beispiel gezeigt:

    Netsh http delete sslcert ipport=0.0.0.0:8005
    

Beispiel

Der folgende Code zeigt, wie Sie einen selbst gehosteten Dienst erstellen, indem Sie die auf die Transportsicherheit festgelegte WSHttpBinding-Klasse verwenden. Geben Sie beim Erstellen einer Anwendung die Anschlussnummer in der Adresse an.

Siehe auch

Konzepte

HTTP-Transportsicherheit