Compartir a través de


Cómo: Configurar un puerto con un certificado SSL

Cuando crea un Windows Communication Foundation (WCF) autohospedado con la clase WSHttpBinding que utiliza la seguridad de transporte, también debe configurar un puerto con un certificado X.509. Si no está creando un servicio autohospedado, puede hospedar su servicio en Servicios de Internet Information Server (IIS). Para obtener más información, consulte Seguridad de transporte HTTP.

La herramienta que se usa para configurar un puerto depende del sistema operativo que se esté ejecutando en el equipo.

Si está ejecutando Windows Server 2003 o Windows XP, use la herramienta HttpCfg.exe. Esta herramienta se instala con Windows Server 2003. En el caso de Windows XP, puede descargar la herramienta en Windows XP Service Pack 2 Support Tools. Para obtener más información, consulte Información general sobre Httpcfg. La documentación Herramientas de soporte de Windows, explica la sintaxis de la herramienta Httpcfg.exe.

Si está ejecutando Windows Vista, use la herramienta Netsh.exe, que ya está instalada.

En este tema se describe cómo se realizan varios procedimientos:

  • Determinar la configuración de puerto actual de un equipo.
  • Obtener la huella digital de un certificado (necesario para los dos procedimientos siguientes).
  • Enlazar un certificado SSL a una configuración de puerto.
  • Enlazar un certificado SSL a una configuración del puerto y admitir los certificados de cliente.
  • Eliminar un certificado SSL de un número de puerto.

Tenga en cuenta que para modificar los certificados almacenados en el equipo se requieren privilegios de administrador.

Determinar cómo se configuran los puertos

  1. En Windows Server 2003 o Windows XP, use la herramienta HttpCfg.exe para ver la configuración de puerto actual, mediante los modificadores query y ssl, como se muestra en el ejemplo siguiente.

    httpcfg query ssl
    
  2. En Windows Vista, use la herramienta Netsh.exe para ver la configuración de puerto actual, como se muestra en el ejemplo siguiente.

    netsh http show sslcert
    

Para obtener una huella digital de un certificado

  1. Use el complemento de certificados de MMC para buscar un certificado X.509 que tenga como finalidad la autenticación del cliente. Para obtener más información, consulte Cómo: Ver certificados con el complemento de MMC.

  2. Obtenga acceso a la huella digital del certificado. Para obtener más información, consulte Cómo recuperar la huella digital de un certificado.

  3. Copie la huella digital del certificado en un editor de texto, como por ejemplo Bloc de notas.

  4. Quite todos los espacios entre los caracteres hexadecimales. Una manera de llevarlo a cabo es utilizar la opción del editor de texto buscar y reemplazar y reemplazar todos los espacios con un carácter nulo.

Enlazar un Certificado SSL a un número de puerto

  1. En Windows Server 2003 o Windows XP, use la herramienta HttpCfg.exe en modo "set" en el almacén SSL (Capa de sockets seguros) para enlazar el certificado a un número de puerto. La herramienta utiliza la huella digital para identificar el certificado, tal y como se muestra en el ejemplo siguiente.

    httpcfg set ssl -i 0.0.0.0:8012 -h 0000000000003ed9cd0c315bbb6dc1c08da5e6
    
    • El modificador -i tiene la sintaxis de IP:port e indica a la herramienta que establezca el certificado en el puerto 8012 del equipo. De forma opcional, también se pueden reemplazar los cuatro ceros que preceden el número por la dirección IP real del equipo.
    • El modificador -h especifica la huella digital del certificado.
  2. En Windows Vista, use la herramienta Netsh.exe, como se muestra en el ejemplo siguiente.

    netsh http add sslcert ipport=0.0.0.0:8000 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} 
    
    • El parámetro certhash especifica la huella digital del certificado.
    • El parámetro ipport especifica el puerto y la dirección IP y funciona como el modificador -i de la herramienta Httpcfg.exe descrita.
    • El parámetro appid es un GUID que se puede usar para identificar la aplicación propietaria.

Para enlazar un Certificado SSL a un número de puerto y a certificados de cliente de compatibilidad

  1. En Windows Server 2003 o Windows XP, para admitir clientes que se autentican con certificados X.509 en el nivel de transporte, siga el procedimiento anterior pero pase un parámetro de línea de comandos adicional a HttpCfg.exe, tal y como se muestra en el ejemplo siguiente.

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

    El modificador -f tiene la sintaxis n, donde n es un número del 1 al 7. El valor 2, como se mostraba en el ejemplo anterior, habilita los certificados de cliente en el nivel de transporte. El valor 3 habilita los certificados de cliente y los asigna a una cuenta de Windows. Consulte la Ayuda HttpCfg.exe para el comportamiento de otros valores.

  2. En Windows Vista, para admitir los clientes que se autentican con certificados X.509 en el nivel de transporte, siga el procedimiento anterior pero pase un parámetro de línea de comandos adicional a HttpCfg.exe, tal y como se muestra en el ejemplo siguiente.

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

Eliminar un Certificado SSL desde un número de puerto

  1. Use la herramienta HttpCfg.exe o Netsh.exe para ver los puertos y huellas digitales de todos los enlaces del equipo. Para imprimir la información en el disco, use el carácter de redireccionamiento ">", como se muestra en el ejemplo siguiente.

    httpcfg query ssl>myMachinePorts.txt
    
  2. En Windows Server 2003 o Windows XP, use la herramienta HttpCfg.exe con las palabras clave delete y ssl. Use el modificador -i para especificar el número IP:port y el modificador -h para especificar la huella digital.

    httpcfg delete ssl -i 0.0.0.0:8005 -h 0000000000003ed9cd0c315bbb6dc1c08da5e6
    
  3. En Windows Vista, use la herramienta Netsh.exe, como se muestra en el ejemplo siguiente.

    Netsh http delete sslcert ipport=0.0.0.0:8005
    

Ejemplo

El código siguiente muestra cómo crear un servicio autohospedado utilizando la clase WSHttpBinding establezca para seguridad de transporte. Cuando cree una aplicación, especifique el número de puerto en la dirección.

Consulte también

Conceptos

Seguridad de transporte HTTP