Citrix ADC

Cómo redirigir la solicitud HTTP a HTTPS mediante Responder

En este artículo se explica cómo configurar la función de respuesta con un equilibrio de carga direcciones IP del servidor virtual y redirigir las solicitudes de cliente 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 descartar la solicitud, es posible que quiera redirigir la solicitud a un sitio web seguro. Puede utilizar la función de respuesta para redirigir la solicitud al sitio web seguro sin cambiar la ruta y la consulta de URL a la que el usuario intenta acceder.

Cómo Responder Citrix ADC redirige una solicitud de HTTP a HTTPS

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

Responder redirigiendo 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 cliente de HTTP a HTTPS, siga el procedimiento siguiente.

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

    Habilitar Respondedor

  2. Cree una acción de respuesta y especifique un nombre adecuado, como http_to_https_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, haga clic 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 NetScaler versión 9.0 y 10.0, asegúrese de que la opción Evitar comprobación de seguridad esté desactivada.

    Nota: Esta opción no está presente desde NetScaler 11.0 en adelante.

  7. Cree una directiva de respuesta y especifique un nombre adecuado, como http_to_https_pol, en el campo Nombre.
  8. Para crear una directiva de respondedor, en el panel de navegación, expanda AppExpert > Responder, haga clic en Directivas y, a continuación, haga clic en Agregar.
  9. En la lista Acción, seleccione el nombre de acción que ha creado.
  10. En la lista Acción no definida, seleccione RESTABLECER.
  11. 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 respondedor

  1. Cree un monitor para el que el estado siempre esté marcado como UP y especifique un nombre adecuado, como localhost_ping, en el campo Nombre.
  2. Para crear un monitor, en el panel de navegación expanda Equilibrio de carga, haga clic en Monitores y, a continuación, haga clic 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, haga clic en Agregar.
  6. Especifique una dirección IP no existente en el campo Servidor.

    Configurar monitor

  7. Especifique 80 en el campo Puerto.
  8. Agregue el monitor creado de la lista 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, haga clic en Agregar.
  11. Especifique la dirección IP del sitio web en el campo Dirección IP.
  12. Seleccione HTTP en la lista Protocolo.
  13. Escriba 80 en el campo Puerto.
  14. En NetScaler versión 9.0 y 10.0, seleccione la opción Active para el servicio que ha creado en la ficha Servicios como se muestra en la siguiente captura de pantalla. Esta opción está obsoleta en NetScaler versión 11.0.

    Seleccione la opción Acción

  15. Haga clic en la ficha Directivas.
  16. Enlazar la directiva Responder 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

Notas:

  • El estado del puerto 80 Load Balancing Redirect servidor virtual debe estar UP para que funcione la redirección.
  • Es posible que los exploradores web no redireccionen 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 redirección, el dispositivo envía un código de mensaje RESTABLECER.

Cómo redirigir la solicitud HTTP a HTTPS mediante Responder