Cómo: Utilizar ASP para forzar SSL para páginas específicas


Se recomienda encarecidamente a todos los usuarios que actualicen a la versión 7.0 de Microsoft Internet Information Services (IIS) que se ejecuta en Microsoft Windows Server 2008. IIS 7.0 aumenta considerablemente la seguridad de la infraestructura Web. Para obtener más información acerca de temas relacionados con la seguridad IIS, visite el siguiente sitio Web de Microsoft:Para obtener más información acerca de IIS 7.0, visite el siguiente sitio Web de Microsoft:

Resumen


Es con frecuencia buena práctica de seguridad para requerir Secure Sockets Layer (SSL) para ciertas páginas en un sitio Web. Aunque esto puede configurarse a través de Internet Services Manager (ISM) en Microsoft Management Console (MMC), también puede utilizar páginas Active Server (ASP) para forzar SSL para páginas específicas sin realizar cambios en la consola MMC.


Requisitos previos

Este artículo asume que las siguientes condiciones:

  • IIS se ejecuta en puertos estándar:
    • HTTP = puerto 80
    • HTTPS = puerto 443
  • IIS tiene instalado un certificado SSL válido.
  • El sitio Web o servidor virtual que se utiliza no utiliza encabezados de host HTTP/1.1 para la resolución de nombres.

Forzar SSL mediante ASP

Para forzar SSL mediante ASP, siga estos pasos:
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba Notepady, a continuación, haga clic en Aceptar.
  2. Pegue el código siguiente en un documento en blanco del Bloc de notas. En el menú archivo , haga clic en Guardar comoy, a continuación, guarde el código siguiente en la raíz del servidor Web como un archivo de inclusión denominado ForceSSL.inc:
    <%
    If Request.ServerVariables("SERVER_PORT")=80 Then
    Dim strSecureURL
    strSecureURL = "https://"
    strSecureURL = strSecureURL & Request.ServerVariables("SERVER_NAME")
    strSecureURL = strSecureURL & Request.ServerVariables("URL")
    Response.Redirect strSecureURL
    End If
    %>
  3. Para cada página que requiera SSL, pegue el código siguiente en la parte superior de la página para hacer referencia al archivo de inclusión del paso anterior:
    <%@Language="VBSCRIPT"%>
    <!--#include virtual="/ForceSSL.inc"-->
    Cuando se examina cada página, el código ASP que se encuentra en el archivo de inclusión detecta el puerto para determinar si se utiliza HTTP. Si se utiliza HTTP, el explorador se redirige a la misma página mediante HTTPS.

Referencias


187504 no se admiten encabezados HTTP 1.1 Host cuando se utiliza SSL
228991 cómo crear e instalar un certificado SSL en Internet Information Server 4.0
228836 instalar un certificado nuevo con el Asistente para certificados de utilizarlo en SSL/TLS
257591 descripción del protocolo de enlace de Secure Sockets Layer (SSL)