Vorgehensweise: Konfigurieren eines IIS-gehosteten WCF-Diensts mit SSLHow to: Configure an IIS-hosted WCF service with SSL

In diesem Thema wird beschrieben, wie ein von IIS gehosteter WCF-Dienst für die Verwendung der HTTP-Transportsicherheit eingerichtet wird.This topic describes how to set up an IIS-hosted WCF service to use HTTP transport security. Die HTTP-Transportsicherheit erfordert für die Registrierung bei IIS ein SSL-Zertifikat.HTTP transport security requires an SSL certificate to be registered with IIS. Wenn Sie über kein SSL-Zertifikat verfügen, können Sie mit IIS ein Testzertifikat generieren.If you do not have an SSL certificate you can use IIS to generate a test certificate. Danach müssen Sie der Website eine SSL-Bindung hinzufügen und die Authentifizierungseigenschaften der Website konfigurieren.Next you must add an SSL binding to the web site and configure the web site’s authentication properties. Abschließend müssen Sie den WCF-Dienst für die Verwendung von HTTPS konfigurieren.Finally you need to configure the WCF service to use HTTPS.

Erstellen eines selbstsignierten ZertifikatsCreating a Self-Signed Certificate

  1. Öffnen Sie den Internetinformationsdienste-Manager (inetmgr.exe), und wählen Sie in der linken Strukturansicht den Computernamen aus.Open Internet Information Services Manager (inetmgr.exe), and select your computer name in the left-hand tree view. Wählen Sie auf der rechten Seite des Bildschirms Serverzertifikate aus.On the right-hand side of the screen select Server Certificates

    Startbildschirm des IIS-ManagerIIS Manager Home Screen

  2. Klicken Sie im Fenster Zertifikate auf den selbstsigniertes Zertifikat erstellen...In the Server Certificates window click the Create Self-Signed Certificate…. Link.Link.

    Erstellen einer Self - signiertes Zertifikat mit IISCreating a self-signed certificate with IIS

  3. Geben Sie einen Anzeigenamen für das selbstsignierte Zertifikat, und klicken Sie auf OK.Enter a friendly name for the self-signed certificate and click OK.

    Erstellen Sie Self-Service - Dialogfeld "Zertifikat" signiertCreate Self-Signed Certificate Dialog

    Die Details des neu erstellten selbstsignierten Zertifikats werden nun angezeigt, der Serverzertifikate Fenster.The newly created self-signed certificate details are now shown in the Server Certificates window.

    Fenster "Serverzertifikat" ServerServer Certificate Window

    Das generierte Zertifikat wird im Speicher für vertrauenswürdige Stammzertifizierungsstellen installiert.The generated certificate is installed in the Trusted Root Certification Authorities store.

Hinzufügen einer SSL-BindungAdd SSL Binding

  1. Erweitern Sie im Internetinformationsdienste-Manager, der Sites Ordner und dann die Default Web Site Ordner in der Strukturansicht auf der linken Seite des Bildschirms.Still in Internet Information Services Manager, expand the Sites folder and then the Default Web Site folder in the tree view on the left-hand side of the screen.

  2. Klicken Sie auf die Bindungen...Click the Bindings…. Verknüpfen Sie der Aktionen Abschnitt im rechten oberen Bereich des Fensters.Link in the Actions section in the upper right hand portion of the window.

    Hinzufügen einer SSL-BindungAdding an SSL binding

  3. Klicken Sie im Fenster Sitebindungen auf dem hinzufügen Schaltfläche.In the Site Bindings window click the Add button.

    Dialogfeld "Sitebindungen" SiteSite Bindings Dialog

  4. In der Sitebindung hinzufügen Dialogfeld Wählen Sie Https für den Typ und den Anzeigenamen des selbstsignierten Zertifikats, das Sie gerade erstellt haben.In the Add Site Binding dialog, select https for the type and the friendly name of the self-signed certificate you just created.

    Beispiel für sitebindungSite binding example

Konfigurieren eines virtuellen Verzeichnisses für SSLConfigure Virtual Directory for SSL

  1. Wählen Sie im Internetinformationsdienste-Manager das virtuelle Verzeichnis aus, das den sicheren WCF-Dienst enthält.Still in Internet Information Services Manager, select the virtual directory that contains your WCF secure service.

  2. Wählen Sie im mittleren Bereich des Fensters SSL-Einstellungen im IIS-Abschnitt.In the center pane of the window, select SSL Settings in the IIS section.

    SSL-Einstellungen für virtuelles VerzeichnisSSL Settings for virtual directory

  3. Die SSL-Einstellungen wählen Sie im Bereich der SSL erforderlich Kontrollkästchen und klicken Sie auf der übernehmen link in der Aktionen Abschnitt auf der rechten Seite des Bildschirms.In the SSL Settings pane, select the Require SSL checkbox and click the Apply link in the Actions section on the right hand side of the screen.

    SSL-Einstellungen für virtuelle VerzeichnisseVirtual directory SSL settings

Konfigurieren des WCF-Dienstes für HTTP-TransportsicherheitConfigure WCF Service for HTTP Transport Security

  1. Konfigurieren Sie in der Datei web.config des WCF-Diensts die HTTP-Bindung für die Verwendung der Transportsicherheit, wie im folgenden XML-Code dargestellt.In the WCF service’s web.config configure the HTTP binding to use transport security as shown in the following XML.

    <bindings>  
          <basicHttpBinding>  
            <binding name="secureHttpBinding">  
              <security mode="Transport">  
                <transport clientCredentialType="None"/>  
              </security>  
            </binding>  
          </basicHttpBinding>  
    </bindings>  
    
  2. Geben Sie den Dienst und Dienstendpunkt an, wie im folgenden XML-Code gezeigt.Specify your service and service endpoint as shown in the following XML.

    <services>  
          <service name="MySecureWCFService.Service1">  
            <endpoint address=""  
                      binding="basicHttpBinding"  
                      bindingConfiguration="secureHttpBinding"  
                      contract="MySecureWCFService.IService1"/>  
    
            <endpoint address="mex"  
                      binding="mexHttpsBinding"  
                      contract="IMetadataExchange" />  
          </service>  
    </services>  
    

BeispielExample

Im Folgenden finden Sie ein vollständiges Beispiel für die Datei web.config eines WCF-Diensts, der HTTP-Transportsicherheit verwendet.The following is a complete example of a web.config file for a WCF service using HTTP transport security

<?xml version="1.0"?>  
<configuration>  

  <system.web>  
    <compilation debug="true" targetFramework="4.0" />  
  </system.web>  
  <system.serviceModel>  
    <services>  
      <service name="MySecureWCFService.Service1">  
        <endpoint address=""  
                  binding="basicHttpBinding"  
                  bindingConfiguration="secureHttpBinding"  
                  contract="MySecureWCFService.IService1"/>  

        <endpoint address="mex"  
                  binding="mexHttpsBinding"  
                  contract="IMetadataExchange" />  
      </service>  
    </services>  
    <bindings>  
      <basicHttpBinding>  
        <binding name="secureHttpBinding">  
          <security mode="Transport">  
            <transport clientCredentialType="None"/>  
          </security>  
        </binding>  
      </basicHttpBinding>  
    </bindings>  
    <behaviors>  
      <serviceBehaviors>  
        <behavior>  
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->  
          <serviceMetadata httpsGetEnabled="true"/>  
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->  
          <serviceDebug includeExceptionDetailInFaults="false"/>  
        </behavior>  
      </serviceBehaviors>  
    </behaviors>  
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />  
  </system.serviceModel>  
  <system.webServer>  
    <modules runAllManagedModulesForAllRequests="true"/>  
  </system.webServer>  

</configuration>  

Siehe auchSee Also

Hosten in IIS (Internetinformationsdienste)Hosting in Internet Information Services
Hostinganweisungen des InternetinformationsdienstsInternet Information Service Hosting Instructions
Bewährte Methoden für das Hosten in IIS (Internetinformationsdienste)Internet Information Services Hosting Best Practices
IIS-Hosting mithilfe von InlinecodeIIS Hosting Using Inline Code