Blog de Jorge Pedraza

abril 10, 2012

Cambios automaticos entre HTTP y HTTPS desde ASP.NET

Filed under: Aplicaciones Web — JorgePedraza @ 9:35 am
Tags:

Hola el presente articulo tiene como finalidad resaltar de formar rápida y precisa el uso personalizado de la seguridad SSL dentro de una solución de ASP.NET.

Requisitos:

  1. Microsoft Visual Studio 2010 SP1 o superior.
  2. Microsoft Windows 7 o superior.
  3. Experiencia con autenticación por formulario de ASP.NET.
  4. Conocimiento en la gestión de certificados digitales.
  5. Conexión internet para instalar paquete SecuritySwitch.

Índices:

  1. Conceptos Claves.
  2. Implementar SecuritySwitch en ASP.NET.
  3. Archivos de SecuritySwitch generado dentro de solución ASP.NET.
  4. Configuración SecuritySwitch en archivo Web.Config.
  5. Solución ASP.NET con SecuritySwitch desde Visual Studio 2010 SP1.
  6. Implementación Solución ASP.NET con securitySwitch en IIS 7.x o superior.
  7. Recomendación en IIS con SecuritySwitch.
  8. Código Fuentes.
  9. Enlaces de interés.

Conceptos claves:

Certificado: Es una declaración firmada digitalmente que enlaza el valor de una clave pública con la identidad de la persona, dispositivo o servicio que posee la clave privada correspondiente. La mayoría de los certificados de uso común se basa en el X.509 v3 certificado estándar. Normalmente, los certificados contienen la siguiente información: 1) Valor de clave pública del sujeto, 2) Información del identificador del sujeto, tales como el nombre y correo electrónico, 3) El período de validez, 4) información de identificador del emisor, 5) La firma digital del emisor, que certifica la validez del enlace entre la clave pública del sujeto y la información del identificador del sujeto.

SSL Secure Sockets Layer (capa de conexión segura) y su sucesor TLS Transport Layer Security (seguridad de la capa de transporte) son protocolos criptográficos que proporcionan comunicaciones seguras por una red, comúnmente Internet. SSL implica una serie de fases básicas: 1) Negociar entre las partes el algoritmo que se usará en la comunicación, 2) Intercambio de claves públicas y autenticación basada en Certificados digitales, 3) Cifrado del tráfico basado en cifrado simétrico.

Certificados SSL: se basan en un conjunto de claves públicas y privadas que permiten establecer una conexión segura entre el ordenador del usuario y el servidor del sitio web, así como comprobar si la clave pública de un sitio web corresponde realmente a su propietario. Sin embargo, dado que dicha clave pública está firmada con la clave privada de la autoridad de certificación CA, su seguridad depende de la fiabilidad de la CA que la protege.

SecuritySwitch: Son bibliotecas .NET que permiten a las aplicaciones ASP.NET cambiar automáticamente las solicitudes para páginas y recursos entre los protocolos HTTP y HTTPS sin necesidad de escribir las URLs absolutas en el marcado HTML.

Implementar SecuritySwitch en ASP.NET:

Para hacer uso de las bibliotecas SecuritySwitch, se debe instalar vía NuGet: ( PM> Install-Package SecuritySwitch ), sobre un proyecto ASP.NET activo:

InstallSecuritySwitch

Archivos de SecuritySwitch generado dentro de solución ASP.NET:

  • Common.Logging.dll
  • SecuritySwitch.dll
  • packages.config
  • SecuritySwitch-v4.xsd.

Configuración SecuritySwitch en archivo Web.Config:

SecuritySwitchWebConfig

Solución ASP.NET con SecuritySwitch desde Visual Studio 2010 SP1:

Para probar una solución ASP.NET integrada con SecuritySwitch en Visual Studio 2010:

  1. Verificar que por defecto el Servidor Web de trabajo sea IIS Express, parte de Visual Studio 2010 SP1.
  2. Verificar que la opción SSL habilitado (SSL Enabled) sea igual True en la caja de propiedad del proyecto ASP.NET seleccionado.
  3. Opcionalmente puede establecer el Modo de ejecución en la etiqueta <securitySwitch mode=»LocalOnly»> … </securitySwitch>. Para un caso general simplemente no se establezca el modo, es decir quite el atributo mode junto a su valor.
  4. Verificar que la misma etiqueta de securitySwitch estén establecido adicionalmente dos atributos: baseSecureUri=»https://localhost:44301/» baseInsecureUri=»http://localhost:1112/» ,cuya Uri se pueden ubicar en la caja de propiedades del proyecto Web raíz de ASP.NET.
  5. En la sección <paths> … </paths> ubicado dentro de la etiqueta <securitySwitch>…</securitySwitch>, puede especificar que paginas o recursos que van actuar dentro la conexión segura SSL. para mayor detalle observe la imagen previa.

Implementación Solución ASP.NET con securitySwitch en IIS 7.x o superior:

  1. Generar e instalar el sitio Web de solución ASP.NET en Visual Studio 2010 SP1, por cualquiera de las vías conocidas de implementación en IIS.
  2. Instalar y configurar certificado digital de prueba o real (emitido por CA, como VeriSign) en el del servidor Web IIS de destino.
  3. Realizar pequeños ajustes en archivo Web.config del sitio Web de ASP.NET: estableciendo o no el modo de ejecución de securitySwitch así como las Uri de seguridad en el proceso de trabajo.

Configuración SSL en IIS 7.x:

ConfigurarIISconSSLFinal

Recomendación en IIS con SecuritySwitch:

Cuando implemente una solución ASP.NET con SecuritySwitch, No marque la casilla de verificación requiera SSL (Require SSL) en IIS.

RequireSSLinIIS

Código Fuentes:

Enlaces de interés:

1 comentario »

  1. Muy bueno, gracias por la información!

    Comentarios por Javier Rodriguez — abril 12, 2012 @ 1:57 pm | Responder


RSS feed for comments on this post. TrackBack URI

Deja un comentario

Blog de WordPress.com.