MSDN Library
Collapse the table of content
Expand the table of content

Cómo: Llamar a un servicio Web mediante SSL

Publicado: 26 de junio de 2006

Consulte la Página de entrada como punto de partida y para obtener una descripción completa del documento Crear aplicaciones ASP.NET seguras.

Resumen: SSL se puede utilizar para garantizar la integridad y confidencialidad de los mensajes transmitidos hacia y desde un servicio Web. En este artículo se muestra cómo utilizar SSL con los servicios Web.

Puede configurar un servicio Web para requerir el uso de Secure Sockets Layer (SSL) con el fin de proteger la transmisión de datos confidenciales entre el cliente y el servicio. SSL proporciona las siguientes ventajas:

Integridad de los mensajes. Asegura que los mensajes no se modifican durante su transmisión.

Confidencialidad de los mensajes. Asegura que se mantiene la privacidad de los mensajes durante su transmisión.

En este artículo se describe cómo configurar un servicio Web para requerir SSL y cómo llamar al servicio Web desde una aplicación cliente ASP.NET mediante el protocolo HTTPS.

Nota

la información de este artículo se aplica también a los objetos remotos alojados en ASP.NET y en IIS (con la tecnología .NET Remoting). Para obtener información acerca de cómo crear un componente remoto alojado en IIS, consulte el artículo Q312107 "How To: Host a Remote Object in Microsoft Internet Information Services" (en inglés).

Requisitos
A continuación se describen las recomendaciones de hardware, software, infraestructura de red, conocimientos y Service Pack que se necesitan:
Sistema operativo Microsoft® Windows® 2000 Server
Sistema de desarrollo Microsoft Visual Studio® .NET
Un servidor Web que tenga instalado un certificado de servidor
Para obtener más información acerca de cómo instalar certificados de servidor Web, consulte "Cómo: Configurar SSL en un servidor Web".
Para llevar a cabo los procedimientos de este artículo, también es necesario que tenga conocimientos acerca del desarrollo Web ASP.NET con la herramienta Microsoft Visual C#™.

En esta página

Crear un servicio Web sencillo  Crear un servicio Web sencillo
Configurar el directorio virtual del servicio Web para requerir SSL  Configurar el directorio virtual del servicio Web para requerir SSL
Probar el servicio Web con un explorador  Probar el servicio Web con un explorador
Instalar el certificado de la entidad emisora en el equipo cliente  Instalar el certificado de la entidad emisora en el equipo cliente
Desarrollar una aplicación Web para llamar al componente revisado  Desarrollar una aplicación Web para llamar al componente revisado
Recursos adicionales Recursos adicionales

Crear un servicio Web sencillo

Para crear un servicio Web sencillo en el equipo host de servicios Web

  1. Inicie Visual Studio .NET y cree una nueva aplicación de servicio Web ASP.NET en C# con el nombre SecureMath.

  2. Cambie el nombre de service1.asmx por math.asmx.

  3. Abra math.asmx.cs y cambie el nombre de la clase Service1 por math.

  4. Agregue a la clase math el siguiente método Web.

    [WebMethod]
       public long Add(long operand1, long operand2)
       { 
       return (operand1 + operand2);
       }
    
  5. En el menú Generar, haga clic en Generar solución para crear el servicio Web.

Configurar el directorio virtual del servicio Web para requerir SSL

El servicio Web se ejecuta en Servicios de Internet Information Server (IIS) y depende de IIS para proporcionar compatibilidad con SSL.En este procedimiento se supone que dispone de un certificado de servidor válido instalado en el servidor Web. Para obtener más información acerca de cómo instalar certificados de servidor Web, consulte "Cómo: Configurar SSL en un servidor Web".

Para utilizar IIS para configurar el directorio virtual del servicio Web para SSL

  1. En el equipo host de servicios Web, inicie IIS.

  2. Vaya al directorio virtual SecureMath.

  3. Haga clic con el botón secundario del mouse (ratón) en SecureMath y, a continuación, haga clic en Propiedades.

  4. Haga clic en la ficha Seguridad de directorios.

  5. En Comunicaciones seguras, haga clic en Modificar.

    Si el botón Modificar no está disponible, es probable que no tenga instalado un certificado de servidor Web.

  6. Active la casilla de verificación Requerir canal seguro (SSL).

  7. Haga clic en Aceptar y, a continuación, haga clic de nuevo en Aceptar.

  8. En el cuadro de diálogo Omitir herencia, haga clic en Seleccionar todo y, después, haga clic en Aceptar para cerrar el cuadro de diálogo de propiedades de SecureMath.

    De esta forma se aplica la nueva configuración de seguridad a todos los subdirectorios de la raíz del directorio virtual.

Probar el servicio Web con un explorador

En este procedimiento se asegura que el certificado del servidor Web es válido y que ha sido emitido por una entidad emisora de certificados (CA, Certification Authority) en la que el equipo cliente confía.

Para llamar al servicio Web mediante SSL desde Internet Explorer

  1. Inicie Internet Explorer en el equipo cliente y vaya a la dirección del servicio Web (con HTTPS). Por ejemplo:

    https://WebServer/securemath/math.asmx
    

    El explorador debe mostrar la página de prueba del servicio Web.

  2. Si la página de prueba se muestra correctamente, cierre Internet Exporer y vaya al procedimiento 5, "Desarrollar una aplicación Web para llamar al componente revisado".

  3. Si aparece el cuadro de diálogo Alerta de seguridad que se muestra en la ilustración 1, haga clic en Ver certificado para ver la identidad de la entidad emisora del certificado del servidor Web. Debe instalar el certificado de la CA en el equipo cliente. Para ello, consulte el procedimiento 4, "Instalar el certificado de la entidad emisora en el equipo cliente".

  4. Cierre Internet Explorer.

    imagen

    Ilustración 1
    Cuadro de diálogo Alerta de seguridad

Instalar el certificado de la entidad emisora en el equipo cliente

En este procedimiento se instala el certificado de la entidad emisora en el equipo cliente como una entidad emisora de certificados raíz de confianza. El equipo cliente debe confiar en la entidad emisora de certificados para poder aceptar el certificado de servidor sin mostrar el cuadro de diálogo

Alerta de seguridad.

Si utiliza Servicios de Microsoft Certificate Server como CA en el dominio de Windows

Lleve a cabo este procedimiento sólo si el certificado del servidor Web ha sido emitido por una CA de Servicios de Microsoft Certificate Server. De lo contrario, si dispone del archivo .cer de la CA, vaya al paso 8.

  1. Inicie Internet Explorer y vaya a la dirección http://nombreDeHost/certsrv, donde nombreDeHost es el nombre del equipo en el que se encuentran los Servicios de Microsoft Certificate Server que emitieron el certificado de servidor.

  2. Haga clic en Recuperar el certificado de entidad emisora de certificados o la lista de revocación de certificados y, a continuación, haga clic en Siguiente.

  3. Haga clic en Instalar esta ruta de certificación de CA.

  4. En el cuadro de diálogo Almacén de certificados raíz, haga clic en Sí.

    https://WebServer/securemath/math.asmx
    

    El explorador debe mostrar correctamente la página de prueba del servicio Web, sin que aparezca el cuadro de diálogo Alerta de seguridad.
    Ya tiene instalado el certificado de la CA en su almacén personal de certificados raíz de confianza. Para poder llamar correctamente al servicio Web desde una página ASP.NET, debe agregar el certificado de la CA al almacén de certificados raíz de confianza del equipo.

  5. Repita los pasos 1 y 2, haga clic en Descargar certificado de la CA y, después, guarde el certificado en un archivo en el equipo local.

  6. Realice ahora los pasos restantes.

    Si dispone del archivo .cer del certificado de la CA

  7. En la barra de tareas, haga clic en Inicio y, después, en Ejecutar.

  8. Escriba mmc y, a continuación, haga clic en Aceptar.

  9. En el menú Consola, haga clic en Agregar o quitar complemento.

  10. Haga clic en Agregar.

  11. Seleccione Certificados y, después, haga clic en Agregar.

  12. Seleccione Cuenta de equipo y, después, haga clic en Siguiente.

  13. Seleccione Equipo local: (el equipo en el que se ejecuta esta consola) y, después, haga clic en Finalizar.

  14. Haga clic en Cerrar y, a continuación, en Aceptar.

  15. En el panel izquierdo del complemento MMC, expanda Certificados (equipo local).

  16. Expanda Entidades emisoras de certificados raíz de confianza.

  17. Haga clic con el botón secundario en Certificados, elija Todas las tareas y, a continuación, haga clic en Importar.

  18. Haga clic en Siguiente para pasar el cuadro de diálogo inicial del Asistente para importación de certificados.

  19. Escriba la ruta y el nombre del archivo .cer de la CA.

  20. Haga clic en Siguiente.

  21. Seleccione Colocar todos los certificados en el siguiente almacén y haga clic en Examinar.

  22. Seleccione Mostrar almacenes físicos.

  23. Expanda Entidades emisoras de certificados raíz de confianza en la lista y, después, seleccione Equipo local.

  24. Haga clic en Aceptar, haga clic en Siguiente y, a continuación, en Finalizar.

  25. Haga clic en Aceptar para cerrar el cuadro de mensaje de confirmación.

  26. Actualice la vista de la carpeta Certificados en el complemento MMC y compruebe que el certificado de la CA aparece en la lista.

  27. Cierre el complemento MMC.

Desarrollar una aplicación Web para llamar al componente revisado

En este procedimiento se crea una aplicación Web ASP.NET sencilla. Esta aplicación se utilizará como cliente para llamar al servicio Web.

Para crear una aplicación Web ASP.NET sencilla

  1. En el equipo cliente del servicio Web, cree una nueva aplicación Web ASP.NET en C# con el nombre SecureMathClient.

  2. Agregue una referencia Web (mediante HTTPS) al servicio Web.

    a. En el Explorador de soluciones, haga clic con el botón secundario en el nodo Referencias y, después, haga clic en Agregar referencia Web.
    b. En el cuadro de diálogo Agregar referencia Web, escriba la dirección URL del servicio Web. Asegúrese de que utiliza una dirección URL HTTPS.

    Nota

    Si ya ha establecido una referencia Web a un servicio Web sin utilizar HTTPS, puede modificar manualmente el archivo de clases proxy generado y cambiar la línea de código en la que se establece la propiedad Url para que se utilice una dirección URL HTTPS en lugar de una dirección URL HTTP.

    c. Haga clic en Agregar referencia.

  3. Abra el archivo WebForm1.aspx.cs y agregue la siguiente instrucción using debajo de las instrucciones using existentes.

    using SecureMathClient.WebReference1;
    
  4. Vea WebForm1.aspx en el modo del diseñador y cree un formulario como el que se muestra en la ilustración 2 con los siguientes Id.:
    operand1
    operand2
    result
    add

    imagen

    Ilustración 2
    Formulario WebForm1.aspx

  5. Haga doble clic en el botón Add (Sumar) para crear un controlador de eventos de clic.

  6. Agregue al controlador de eventos el siguiente código.

    private void add_Click(object sender, System.EventArgs e)
       {
       math mathService = new math();
       int addResult = (int) mathService.Add( Int32.Parse(operand1.Text), 
       Int32.Parse(operand2.Text));
       result.Text = addResult.ToString();
       }
    
  7. En el menú Generar, haga clic en Generar solución.

  8. Ejecute la aplicación. Escriba dos números para sumar y, después, haga clic en el botón Add.

    La aplicación Web llamará al servicio Web mediante SSL.

Recursos adicionales

Mostrar:
© 2016 Microsoft