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 escenario en el que un usuario podría intentar acceder a un sitio web seguro enviando una solicitud HTTP. En lugar de descartar la solicitud, es posible que desees redirigirla a un sitio web seguro. Puede usar 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 el usuario intenta acceder.

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

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.

Habilite la función de respuesta en el dispositivo

Para habilitar la función de respuesta en el dispositivo, vaya a Sistema > Configuración> Configurar funciones avanzadas y seleccione Responder .

Crear una acción de respuesta

Para crear una acción de respuesta, lleve a cabo los siguientes pasos:

  1. Vaya a AppExpert > Responder > Acciones y haga clic en Agregar.
  2. Especifique un nombre apropiado, como http_to_https_actn, en el campo Nombre.
  3. Selecciona Redirigir como tipo .
  4. 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.

  5. Haga clic en Crear.

Crear directiva de respuesta

Para crear una política de respuesta, lleve a cabo los siguientes pasos:

  1. Vaya a AppExpert > Responder > Políticas y haga clic en Agregar.
  2. Especifique un nombre apropiado, como http_to_https_pol, en el campo Nombre.
  3. En la lista Acción , seleccione el nombre de la acción que ha creado.
  4. En la lista Acción indefinida , selecciona RESTABLECER.
  5. Escriba la expresión HTTP.REQ.IS_VALID en el campo Expresión, como se muestra en la siguiente captura de pantalla.

Crear directiva de respondedores

Crear un monitor

Para crear un monitor cuyo estado esté siempre marcado como ACTIVO, lleve a cabo los siguientes pasos:

  1. Vaya a Administración del tráfico > Equilibrio de carga > Monitores y haga clic en Agregar .
  2. Especifique un nombre apropiado, como localhost_ping, en el campo Nombre.
  3. En el campo IP de destino , especifique 127.0.0.1 como dirección IP.

Configurar monitor

Crear un servicio

Para crear un servicio, lleve a cabo los siguientes pasos:

  1. Vaya a Equilibrio de carga > Servicios y haga clic en Agregar.
  2. Especifique un nombre apropiado, como Always_up_Service, en el campo Nombre.
  3. Especifique una dirección IP inexistente en el campo Servidor .

  4. Especifique 80 en el campo Puerto .
  5. Añada el monitor creado de la lista de monitores disponibles .

Crear un servidor virtual de equilibrio de carga

  1. Vaya a Equilibrio de carga > Servicios y, a continuación, haga clic en Agregar .
  2. Especifique un nombre apropiado en el campo Nombre .
  3. Especifique la dirección IP del sitio web en el campo Dirección IP .
  4. Seleccione HTTP en la lista de protocolos .
  5. Escriba 80 en el campo Puerto.
  6. Haga clic en la ficha Directivas.
  7. Enlaza la política de respuesta que creaste a la dirección VIP de equilibrio de carga HTTP del sitio web.
  8. Cree un servidor virtual de equilibrio de carga seguro que tenga la dirección IP del sitio web y el puerto 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