Pregunta

Estoy sacando mi cabello de lo que debería ser un problema increíblemente simple. Estamos ejecutando WebSphere IHS (Apache) a través de un F5 BigIP. BigIP está haciendo la traducción https para nosotros. Nuestra url (modificada para web, no válida) es https://superniftyserver.com/lawson/portal .

Cuando alguien escribe solo eso sin la barra después del portal, Apache asume " portal " Ser un archivo y no un directorio. Cuando Apache descubre qué es, envía el 301 Redireccionamiento Permanente. Pero como Apache solo conoce http, envía la URL como http://superniftyserver.com/lawson/portal/ que luego crea problemas.

Así que probé un cambio httpd.conf a nivel de servidor para mod_rewrite, esta es una de las docenas de combinaciones que he probado.

RewriteEngine en RewriteRule ^ / lawson / portal (. *) / Lawson / portal / $ 1

También lo intenté RewriteRule ^ / lawson / portal $ / lawson / portal /

Entre muchas otras cosas ... ¿Qué me estoy perdiendo?

¿Fue útil?

Solución

Si no puede obtener una respuesta en la sintaxis de RewriteRule, aquí hay otras dos opciones para usted: Escriba una iRule personalizada en BigIp (consulte F5 DevCentral ) que busca 301 respuestas y las convierte a SSL; deje que la URL pase a su servidor de WebSphere y haga un redireccionamiento programático que envíe HTTPS. Sin embargo, dado que F5 termina la conexión SSL, debe configurar un encabezado personalizado que configure (consulte PQ86347 ) por lo que Java request.getScheme () funciona como cabría esperar.

Otros consejos

¡Fijo!

SOL6912: configuración de un perfil HTTP para volver a escribir las URL de modo que las redirecciones desde un servidor HTTP especifiquen el protocolo HTTPS


Actualizado: 8/7/07 12:00 AM

Normalmente, un servidor virtual ClientSSL está configurado para aceptar conexiones HTTPS de un cliente, descifrar la sesión SSL y enviar la solicitud HTTP sin cifrar al servidor web.

Cuando una URI solicitada no incluye una barra diagonal (una barra diagonal, como /, al final de la URI), algunos servidores web generan una redirección de cortesía. Sin una barra diagonal final, el servidor web tratará primero el recurso especificado en el URI como un archivo. Si no se puede encontrar el archivo, el servidor web puede buscar un directorio con el mismo nombre y, si lo encuentra, enviar una respuesta de redireccionamiento HTTP 302 al cliente con una barra diagonal. La redirección se devolverá al cliente en modo HTTP en lugar de HTTPS, lo que hará que la sesión SSL falle.

A continuación se muestra un ejemplo de cómo una respuesta de redireccionamiento HTTP 302 hace que la sesión SSL falle:

& # 183; Para solicitar una sesión SSL, un usuario escribe https://www.f5.com/stuff sin una barra diagonal.

& # 183; El navegador del cliente envía una solicitud SSL al servidor virtual ClientSSL, que reside en el sistema BIG-IP LTM.

& # 183; El sistema BIG-IP LTM luego desencripta la solicitud y envía un comando GET / stuff al servidor web.

& # 183; Dado que el archivo / stuff no existe en el servidor web, pero existe un directorio / stuff / virtual, el servidor web envía una respuesta de redireccionamiento HTTP 302 para el directorio, pero agrega una barra diagonal al recurso. Cuando el servidor web envía la respuesta de redireccionamiento HTTP 302, especifica HTTP (no HTTPS).

& # 183; Cuando el cliente recibe la respuesta de redireccionamiento HTTP 302, envía una nueva solicitud al servidor virtual BIG-IP LTM que especifica HTTP (no HTTPS). Como resultado, la conexión SSL falla.

Configuración de un perfil HTTP para volver a escribir las URL

En BIG-IP LTM versión 9.x puede configurar un perfil HTTP para volver a escribir las URL de modo que las redirecciones desde un servidor HTTP especifiquen el protocolo HTTPS. Para ello, realice el siguiente procedimiento:

  1. Inicie sesión en la utilidad de configuración.

  2. Haz clic en Tráfico local.

  3. Haz clic en Perfiles.

  4. Haz clic en el botón Crear.

  5. Escriba un nombre para el perfil.

  6. Elija http en el menú desplegable Perfil principal.

  7. En Configuración, configure Redirect Rewrite to All, Matching o Nodes, dependiendo de su configuración

Por ejemplo:

o Elija Todos para volver a escribir cualquier redireccionamiento HTTP 301, 302, 303, 305 o 307 a HTTPS

o Elija Coincidencia para volver a escribir las redirecciones cuando la ruta y los componentes de URI de consulta de la solicitud y la redirección sean idénticos (excepto por la barra diagonal)

o Elija Nodo para volver a escribir las redirecciones cuando el URI de redirección contiene una dirección IP de nodo en lugar de un nombre de host, y desea que el sistema la cambie a la dirección del servidor virtual

  1. Haz clic en Finalizar.

Ahora debe asociar el nuevo perfil HTTP con el servidor virtual ClientSSL.

Prueba esto:

# Trailing slash problem
RewriteCond    %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule    ^(.+[^/])$           https://<t:sitename/>$1/ [redirect,last]
LoadModule rewrite_module                modules/mod_rewrite.so

asegúrese de que la línea esté en algún lugar de su archivo httpd.conf

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top