IIS7: HTTP-> HTTPS Cleanly

¿Existe alguna forma clara de redirigir todos los bashs de ir a una versión HTTP: // de un sitio a su HTTPS: // equivalente?

Creo que la forma más limpia es la descrita aquí en IIS-aid.com . Solo es web.config y si cambias de servidor no tienes que recordar todos los pasos que pasaste con la página de error 403.4 personalizada u otros permisos especiales, simplemente funciona.

               

La solución más fácil y limpia que encontré fue

  1. En la configuración SSL -> requiere SSL

  2. En páginas de error -> En error 403.4 -> Redirigir al sitio HTTPS

  3. En páginas de error -> Editar configuración de funciones … -> Establecer errores detallados para solicitudes locales y páginas de error personalizadas para solicitud remota

El beneficio es que no requiere líneas adicionales de código. Lo malo es que te redirige a una url absoluta.

Una forma limpia solo cambia el esquema de URL de http -> https y deja todo lo demás equivalente. Debe ser del lado del servidor para que no haya problemas con el navegador.

JPPinto.com tiene instrucciones paso a paso sobre cómo se hace esto, excepto que usan javascript (HttpRedirect.htm) en lugar de un redireccionamiento del lado del servidor. Por alguna razón, no pude obtener IE ejecute el javascript si tiene habilitado ‘Mostrar mensajes de error HTTP amigables’, que está activado por defecto. Otra cosa con el script es que la redirección a la ruta no funcionaba ni en FF ni en Chrome. La secuencia de comandos siempre redirige a la raíz. (Tal vez me he perdido algo, porque debe redirigir a la ruta).

Por estas razones, he usado una página ASP para el redireccionamiento. La desventaja es, por supuesto, que esto requiere que ASP clásico esté habilitado en el servidor.

OpsanBlog tiene una secuencia de comandos ASP e instrucciones que funcionan bien con IIS6.

He tenido algunos problemas al usar este método con IIS7. La interfaz de usuario tiene problemas principalmente, ya que IIS7 hace que sea realmente fácil perder algo.

  • En primer lugar, debe instalar ASP como función de función de servidor web.
  • Segundo, el uso de un directorio virtual no funcionó como se esperaba en IIS7 y no intenté depurar esto. En su lugar, puse el archivo en la carpeta raíz del sitio y usé el URL ‘/SSLRedirect.asp’ en la página de error 403.4 para hacer referencia a él.
  • Por último, la parte más complicada, NO debes aplicar SSL para SSLRedirect.asp . De lo contrario, obtendrá un error 403.4. Para hacerlo, seleccione el archivo en IIS7 ‘Vista de contenido’ y cambie a ‘Vista de funciones’ para que pueda editar la configuración de SSL para el único archivo y desactivar la casilla ‘Requerir SSL’.

El administrador de IIS debe mostrar el nombre del archivo en el encabezado.

Global.asax

 protected void Application_BeginRequest() { if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection) Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:")); } 

Creo que con ‘limpiar’ te refieres con un redireccionamiento de 300. Configuración para muchos servidores e idiomas aquí .