Recibe un "HTTP Error 403: Forbidden" error mientras se trabaja en proyectos de aplicación Web de ASP.NET con SSL habilitado


Síntomas


Puede recibir un error similar en los siguientes casos:
  • Al crear una aplicación Web de Microsoft ASP.NET en Microsoft Visual Studio .NET y configurar la autenticación de certificado de Secure Sockets Layer (SSL) en el proyecto de aplicación Web de ASP.NET, puede recibir el mensaje de error cuando intenta volver a abrir el Web de ASP.NET proyecto de aplicación en el IDE de Visual Studio:
    No se puede abrir el proyecto Web 'AspwebApp1'. La ruta de acceso del archivo 'C:\Inetpub\wwwroot\AspwebApp1' no se corresponde con la dirección URL ' http://Localhost: / AspwebApp1'. Los dos deben asignarse a la misma ubicación de servidor. Error HTTP 403: prohibido
    O bien
  • Ha creado un directorio virtual donde creará una aplicación de ASP.NET. Habilitar la autenticación SSL en Internet Information Services (IIS) para el proyecto que se crea en la carpeta. Cuando intenta crear un nuevo proyecto de aplicación Web con el nombre del directorio virtual, puede recibir el siguiente error:
    No se puede crear el proyecto Web 'AspwebApp2'. La ruta de acceso del archivo ' C\Inetpub\wwwroor\AspwebApp2\ no corresponde a la dirección URL 'http://localhost/AspwebApp2'. Los dos deben asignarse a la misma ubicación de servidor. Error HTTP 403: prohibido

Solución alternativa


Para solucionar el problema, utilice una dirección URL https en lugar de http cuando se abre o se crea un proyecto nuevo. Para ello, siga estos pasos:

Abra un proyecto de ASP.NET existente después de habilita la opción de SSL

Cuando se habilita el proyecto existente de ASP.NET con SSL, reemplace el valor del atributo URLPath en el archivo webinfo de http a https. Para ello, siga estos pasos:
  1. Busque la carpeta de proyecto (C:\inetpub\wwwroot\AspWebTest1).
  2. Abra el archivo AspWebTest.csproj.webinfo o AspWebTest.vbproj.webinfo en el Bloc de notas.
  3. Reemplace el valor del atributo URLPath con https, como sigue:
    <VisualStudioUNCWeb> <Web URLPath ="https://ServerName/AspWebTest1/AspWebTest1.csproj" /></VisualStudioUNCWeb>
    Nota: Debe reemplazar ServerName con el nombre de dominio del servidor. Éste es el nombre que se emitió el certificado. Si hay coincidencia, recibirá el siguiente mensaje de error:
    El nombre de host en el certificado no es válido o no coincide con
  4. Guarde y cierre el archivo AspWebTest.csproj.webinfo.
  5. Abra el proyecto AspWebTest1 en Visual Studio .NET.

Cree un nuevo proyecto de ASP.NET en el directorio Virtual se ha habilitado SSL

Crear un directorio virtual con SSL habilitado y, a continuación, abra el nuevo proyecto Web con una dirección URL https . Para ello, siga estos pasos:
  1. Inicie Visual Studio. NET.
  2. En el menú archivo, elija nuevo y, a continuación, haga clic en proyecto.
  3. Seleccione el proyecto de Visual Basic en tipos de proyectoo proyecto de Visual C# .
  4. Seleccione la aplicación Web de ASP.NET.
  5. En el cuadro ubicación , escriba https://localhost/AspWebTest2.
  6. Para crear el proyecto, haga clic en Aceptar.

Estado


Este comportamiento es una característica del diseño de la aplicación.

Más información


Pasos para reproducir el comportamiento

Abrir un proyecto existente de ASP.NET con SSL habilitado

  1. Para crear una aplicación Web de ASP.NET, siga estos pasos:
    1. Inicie Visual Studio. NET.
    2. Cree una nueva aplicación Web ASP.NET en Visual C# .NET o en Visual Basic .NET y, a continuación, denomine el archivo AspWebTest1.
    3. En el menú Generar, haga clic en Generar solución.
    4. Cierre el IDE de Visual Studio.
  2. Para configurar un certificado de servidor SSL, siga estos pasos: para obtener información adicional acerca de cómo instalar un certificado de servidor, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    315588 cómo proteger una aplicación ASP.NET utilizando certificados de cliente
  3. Para abrir el proyecto de aplicación Web de ASP.NET, siga estos pasos:
    1. Inicie Visual Studio. NET.
    2. En el menú archivo , elija Abriry, a continuación, haga clic en proyecto.
    3. Busque la carpeta de % windir %\inetpub\wwwroot\AspWebTest1.
    4. Seleccione el archivo AspWebTest1.csproj o AspWebTest1.vbproj .
    5. Haga clic en Abrir. Puede que observe el error que se describe en la sección "Síntomas" de este artículo.

Cree un nuevo proyecto de ASP.NET en el directorio Virtual habilitado para SSL

  1. Para crear un directorio Virtual, siga estos pasos:
    1. En el símbolo del sistema, busque \inetpub\wwwroot % windir %y, a continuación, cree una carpeta denominada AspWebTest2. Se crea C:\inetpub\wwwroot\AspWebTest2.
    2. Haga clic en C:\inetpub\wwwroot\AspWebTest2y, a continuación, haga clic en Propiedades. De forma predeterminada, aparece la ventana Propiedades.
    3. Haga clic en la ficha WebSharing . De forma predeterminada, sitio Web predeterminado está seleccionada en el cuadro de Shareel .
    4. Haga clic para activar la casilla de verificación Compartir esta carpeta y, a continuación, haga clic en Aceptar.
    5. En la ventana Modificar Alias, haga clic en Aceptar.
    6. En la ventana Propiedades, haga clic en Aceptar.
  2. Para establecer la configuración de seguridad SSL en IIS, siga estos pasos:
    1. Haga clic en Inicio, seleccione programas, seleccione Herramientas administrativasy, a continuación, haga clic en Administrador de servicios Internet.
    2. Expanda el servidor y, a continuación, haga clic en sitio Web predeterminado.
    3. En el menú Acción, haga clic en Propiedades.
    4. En la ficha Seguridad de directorios , haga clic en Modificar en comunicaciones seguras.
    5. Haga clic para activar la casilla de verificación Requerir canal seguro (SSL) y, a continuación, haga clic en Aceptar.
  3. Para crear un proyecto Web nuevo, siga estos pasos:
    1. Inicie Visual Studio. NET.
    2. En el menúarchivo , elija nuevoy, a continuación, haga clic en proyecto.
    3. Seleccione proyectos de Visual Basic en tipos de proyectoo proyecto de Visual C# .
    4. Seleccione la aplicación Web de ASP.NET.
    5. En el cuadro ubicación , escriba http://localhost/AspWebTest2.
    6. Haga clic en Aceptar. Puede que observe el error que se describe en la sección "Síntomas" de este artículo.

Referencias


Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
315588 cómo proteger una aplicación ASP.NET utilizando certificados de cliente
298805 cómo habilitar SSL para todos los clientes que interactúan con su sitio Web en servicios de Internet Information Server