ADC

Cómo redirigir la solicitud HTTP a HTTPS utilizando el respondedor

En este artículo se explica cómo configurar la función de respuesta con direcciones IP de servidores virtuales de equilibrio de carga y cómo redirigir las solicitudes de los clientes de HTTP a HTTPS.

Considere un caso en el que un usuario podría intentar acceder a un sitio web seguro mediante el envío de una solicitud HTTP. En lugar de eliminar la solicitud, puede redirigirla a un sitio web seguro. Puede utilizar la función de respuesta para redirigir la solicitud al sitio web seguro sin cambiar la ruta ni la consulta de URL a la que intenta acceder el usuario.

Cómo el respondedor de NetScaler redirige una solicitud de HTTP a HTTPS

La siguiente ilustración muestra un flujo paso a paso de cómo el dispositivo redirige una solicitud.

Respondedor que redirige una solicitud

Nota: Las rutas de navegación y las capturas de pantalla se derivan de NetScaler 11.0.

Para configurar la función Responder junto con las direcciones VIP de equilibrio de carga de un dispositivo NetScaler para redirigir las solicitudes de los clientes de HTTP a HTTPS, complete el siguiente procedimiento.

  1. Habilite la función de respuesta en el dispositivo. Vaya a Sistema > Configuración > Configurar funciones avanzadas > Responder.

    Habilitar Responder

  2. Cree una acción de respuesta y especifique un nombre apropiado, como http_to_http_http_http_actn, en el campo Nombre.
  3. Para crear una acción de respuesta, en el panel de navegación, expanda AppExpert > Responder, haga clic en Acciones y, a continuación, en Agregar.
  4. Seleccione Redirigir como tipo.
  5. En el campo Expresión, escriba la siguiente expresión:

    "https://" + HTTP.REQ.HOSTNAME.HTTP_URL_SAFE + HTTP.REQ.URL.PATH_AND_QUERY.HTTP_URL_SAFE.

  6. En las versiones 9.0 y 10.0 de NetScaler, asegúrese de que la opción Omitir la comprobación de seguridad esté desactivada.

    Nota: Esta opción no está presente a partir de NetScaler 11.0.

  7. Cree una directiva de respuesta y especifique un nombre apropiado, como http_to_http_http_http_pol, en el campo Nombre.
  8. Para crear una directiva de respuesta, en el panel de navegación, expanda AppExpert > Responder, haga clic en Directivas y, a continuación, en Agregar.
  9. En la lista Acciones, seleccione el nombre de la acción que ha creado.
  10. En la lista de acciones indefinidas, selecciona RESTABLECER.
  11. Escriba la expresión HTTP.REQ.IS_VALID en el campo Expresión, tal como se muestra en la siguiente captura de pantalla.

Crear directiva de respondedores

  1. Cree un monitor cuyo estado esté siempre marcado como ACTIVO y especifique un nombre apropiado, como localhost_ping, en el campo Nombre.
  2. Para crear un monitor, en el panel de navegación, amplíe Equilibrio de carga, haga clic en Monitores y, a continuación, en Agregar.
  3. En el campo IP de destino, especifique la dirección IP 127.0.0.1, como se muestra en la siguiente captura de pantalla.

    Configurar monitor

  4. Cree un servicio y especifique un nombre adecuado, como Always_up_Service, en el campo Nombre.
  5. Para crear un servicio, en el panel de navegación, expanda Equilibrio de carga, haga clic en Servicios y, a continuación, en Agregar.
  6. Especifique una dirección IP inexistente en el campo Servidor .

    Configurar monitor

  7. Especifique 80 en el campo Puerto .
  8. Añada el monitor creado de la lista de monitores disponibles .
  9. Cree un servidor virtual de equilibrio de carga y especifique un nombre apropiado en el campo Nombre .
  10. Para crear un servidor virtual de equilibrio de carga, en el panel de navegación, expanda Equilibrio de carga, haga clic en Servicios y, a continuación, en Agregar.
  11. Especifique la dirección IP del sitio web en el campo Dirección IP.
  12. Seleccione HTTP en la lista de protocolos.
  13. Escriba 80 en el campo Puerto.
  14. En las versiones 9.0 y 10.0 de NetScaler, seleccione la opción Activa para el servicio que ha creado en la ficha Servicios, tal como se muestra en la siguiente captura de pantalla. Esta opción está obsoleta en la versión 11.0 de NetScaler.

    Seleccione la opción Acción

  15. Haga clic en la ficha Directivas.
  16. Vincule la directiva de respuesta que creó a la dirección VIP de equilibrio de carga HTTP del sitio web.
  17. Cree un servidor virtual de equilibrio de carga seguro que tenga la dirección IP del sitio web y el puerto como 443.

Para crear una configuración similar al procedimiento anterior desde la interfaz de línea de comandos del dispositivo, ejecute los siguientes comandos:

enable ns feature responder
add responder action http_to_https_actn redirect ""https://" + http.req.hostname.HTTP_URL_SAFE + http.REQ.URL.PATH_AND_QUERY.HTTP_URL_SAFE"
add responder policy http_to_https_pol HTTP.REQ.IS_VALID http_to_https_actn RESET
add lb monitor localhost_ping PING -LRTM ENABLED -destIP 127.0.0.1
add service Always_UP_service 1.2.3.4 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip ENABLED dummy -usip NO -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP YES
bind lb monitor localhost_ping Always_UP_service
add lb vserver http_site.com HTTP 10.217.96.238 80 -persistenceType COOKIEINSERT -timeout 0 -cltTimeout 180
bind lb vserver http_site.com Always_UP_service
bind lb vserver http_site.com -policyName http_to_https_pol -priority 1 -gotoPriorityExpression END
<!--NeedCopy-->

Notas:

  • El estado del servidor virtual de redireccionamiento de equilibrio de carga del puerto 80 debe estar ACTIVO para que la redirección funcione.
  • Es posible que los exploradores web no redirijan correctamente si el servidor virtual HTTPS no está activo.
  • Esta configuración de redireccionamiento permite situaciones en las que varios dominios estén enlazados a la misma dirección IP.
  • Si el cliente envía una solicitud HTTP no válida al servidor virtual de redireccionamiento, el dispositivo envía un código de mensaje RESET.
Cómo redirigir la solicitud HTTP a HTTPS utilizando el respondedor