Procedimiento para configurar un servicio WCF hospedado en IIS con SSLHow to: Configure an IIS-hosted WCF service with SSL

En este tema se describe cómo configurar un servicio de WCF hospedado en IIS para usar la seguridad de transporte HTTP.This topic describes how to set up an IIS-hosted WCF service to use HTTP transport security. La seguridad de transporte HTTP necesita registrar un certificado SSL con IIS.HTTP transport security requires an SSL certificate to be registered with IIS. Si no tiene un certificado SSL puede usar IIS para generar un certificado de prueba.If you do not have an SSL certificate you can use IIS to generate a test certificate. Después debe agregar un enlace SSL al sitio web y configurar las propiedades de autenticación del sitio web.Next you must add an SSL binding to the web site and configure the web site’s authentication properties. Finalmente se debe configurar el servicio de WCF para usar HTTPS.Finally you need to configure the WCF service to use HTTPS.

Crear un certificado autofirmadoCreating a Self-Signed Certificate

  1. Abra el Administrador de Internet Information Services (inetmgr.exe) y seleccione el nombre de equipo en la vista de árbol izquierda.Open Internet Information Services Manager (inetmgr.exe), and select your computer name in the left-hand tree view. En la parte derecha de la pantalla, seleccione Certificados de servidorOn the right-hand side of the screen select Server Certificates

    Pantalla de inicio del Administrador de IISIIS Manager Home Screen

  2. En la ventana de certificados de servidor, haga clic en el crear certificado autofirmado...In the Server Certificates window click the Create Self-Signed Certificate…. Vínculo.Link.

    Creación de un autoservicio-firmó el certificado con IISCreating a self-signed certificate with IIS

  3. Escriba un nombre descriptivo para el certificado autofirmado y haga clic en Aceptar.Enter a friendly name for the self-signed certificate and click OK.

    Crear propio-cuadro de diálogo de certificado firmadoCreate Self-Signed Certificate Dialog

    Ahora se muestran los detalles del certificado autofirmado recién creado en el certificados de servidor ventana.The newly created self-signed certificate details are now shown in the Server Certificates window.

    Ventana de certificado de servidorServer Certificate Window

    El certificado generado se instala en el almacén de entidades de certificación raíz de confianza.The generated certificate is installed in the Trusted Root Certification Authorities store.

Agregar enlace SSLAdd SSL Binding

  1. Todavía en el Administrador de Internet Information Services, expanda el sitios carpeta y, a continuación, el sitio Web predeterminado carpeta en la vista de árbol en el lado izquierdo de la pantalla.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. Haga clic en el enlaces...Click the Bindings…. Vínculo de la acciones sección en la parte superior derecha de la ventana.Link in the Actions section in the upper right hand portion of the window.

    Agregar un enlace SSLAdding an SSL binding

  3. En la ventana de enlaces de sitios, haga clic en el agregar botón.In the Site Bindings window click the Add button.

    Cuadro de diálogo enlaces de sitioSite Bindings Dialog

  4. En el Agregar enlace de sitio cuadro de diálogo, seleccione https para el tipo y el nombre descriptivo del certificado autofirmado recién creado.In the Add Site Binding dialog, select https for the type and the friendly name of the self-signed certificate you just created.

    Ejemplo de enlace de sitioSite binding example

Configurar el directorio virtual para SSLConfigure Virtual Directory for SSL

  1. En el Administrador de Internet Information Services, seleccione el directorio virtual que contiene el servicio seguro de WCF.Still in Internet Information Services Manager, select the virtual directory that contains your WCF secure service.

  2. En el panel central de la ventana, seleccione configuración SSL en la sección IIS.In the center pane of the window, select SSL Settings in the IIS section.

    Configuración de SSL para el directorio virtualSSL Settings for virtual directory

  3. En el panel de configuración de SSL, seleccione el requerir SSL casilla y haga clic en el aplicar vincular en el acciones sección en el lado derecho de la pantalla.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.

    Configuración de SSL del directorio virtualVirtual directory SSL settings

Configurar el servicio WCF para la seguridad de transporte HTTPConfigure WCF Service for HTTP Transport Security

  1. En el archivo web.config del servicio de WCF, configure el enlace HTTP para usar seguridad de transporte como se muestra en el siguiente código XML.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. Especifique el servicio y el punto de conexión del servicio tal y como se muestra en el siguiente código XML.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>  
    

EjemploExample

A continuación se muestra un ejemplo completo de un archivo web.config para un servicio de WCF mediante la seguridad de transporte HTTPThe 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>  

Vea tambiénSee also