Citrix ADC

Comment rediriger une requête HTTP vers HTTPS en utilisant le répondeur

Cet article explique comment configurer la fonctionnalité de répondeur avec un équilibrage de charge adresses IP de serveur virtuel et rediriger les requêtes client de HTTP vers HTTPS.

Considérez un scénario dans lequel un utilisateur peut tenter d’accéder à un site Web sécurisé en envoyant une requête HTTP. Au lieu de supprimer la demande, vous pouvez rediriger la demande vers un site Web sécurisé. Vous pouvez utiliser la fonctionnalité de répondeur pour rediriger la demande vers le site Web sécurisé sans modifier le chemin d’accès et la requête URL auxquelles l’utilisateur tente d’accéder.

Comment le répondeur Citrix ADC redirige une requête de HTTP vers HTTPS

L’illustration suivante présente un flux étape par étape de la manière dont l’appliance redirige une demande.

Répondeur redirigeant une demande

Remarque : Les chemins de navigation et les captures d’écran sont dérivés de NetScaler 11.0.

Pour configurer la fonctionnalité Répondeur ainsi que les adresses VIP d’équilibrage de charge d’une appliance NetScaler afin de rediriger les demandes client du HTTP vers HTTPS, procédez comme suit.

  1. Activez la fonction de répondeur sur l’appliance. Accédez à Système > Paramètres > Configurer les fonctionnalités avancées > Répondeur .

    Activation du répondeur

  2. Créez une action de répondeur et spécifiez un nom approprié, tel que http_to_https_actn, dans le champ Nom.
  3. Pour créer une action de répondeur, dans le volet de navigation, développez AppExpert > Répondeur, cliquez sur Actions, puis cliquez sur Ajouter .
  4. Sélectionnez Rediriger en tant que Type.
  5. Dans le champ Expression, tapez l’expression suivante :

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

  6. Dans NetScaler version 9.0 et 10.0, assurez-vous que l’option Contourner la vérification de sécurité est désactivée.

    Remarque : cette option n’est pas présente à partir de NetScaler 11.0.

  7. Créez une stratégie de répondeur et spécifiez un nom approprié, tel que http_to_https_pol, dans le champ Nom.
  8. Pour créer une stratégie de répondeur, dans le volet de navigation, développez AppExpert > Répondeur, cliquez sur Stratégies, puis cliquez sur Ajouter .
  9. Dans la liste Action, sélectionnez le nom de l’action que vous avez créée.
  10. Dans la liste Action non définie, sélectionnez RESET.
  11. Tapez l’expression HTTP.REQ.IS_VALID dans le champ Expression, comme indiqué dans la capture d’écran suivante.

Créer une stratégie de répondeur

  1. Créez un moniteur pour lequel l’état est toujours marqué comme UP et spécifiez un nom approprié, tel que localhost_ping, dans le champ Nom.
  2. Pour créer un moniteur, dans le volet de navigation, développez Équilibrage de la charge, cliquez sur Moniteurs, puis cliquez sur Ajouter.
  3. Dans le champ IP de destination, spécifiez l’adresse IP 127.0.0.1, comme indiqué dans la capture d’écran suivante.

    Configurer le moniteur

  4. Créez un service et spécifiez un nom approprié, tel que Always_up_Service, dans le champ Nom .
  5. Pour créer un service, dans le volet de navigation, développez Équilibrage de la charge, cliquez sur Services, puis cliquez sur Ajouter.
  6. Spécifiez une adresse IP inexistante dans le champ Serveur .

    Configurer le moniteur

  7. Spécifiez 80 dans le champ Port .
  8. Ajoutez le moniteur créé à partir de la liste Moniteurs disponibles .
  9. Créez un serveur virtuel d’équilibrage de charge et spécifiez un nom approprié dans le champ Nom .
  10. Pour créer un serveur virtuel d’équilibrage de charge, dans le volet de navigation, développez Équilibrage de charge, cliquez sur Services, puis cliquez sur Ajouter.
  11. Spécifiez l’adresse IP du site Web dans le champ Adresse IP.
  12. Sélectionnez HTTP dans la liste Protocol.
  13. Tapez 80 dans le champ Port.
  14. Sur NetScaler version 9.0 et 10.0, sélectionnez l’option Actif pour le service que vous avez créé dans l’onglet Services, comme indiqué dans la capture d’écran suivante. Cette option est obsolète dans NetScaler version 11.0.

    Sélectionner l'option Action

  15. Cliquez sur l’onglet Stratégies.
  16. Liez la stratégie Répondeur que vous avez créée à l’adresse VIP d’équilibrage de la charge HTTP du site Web.
  17. Créez un serveur virtuel d’équilibrage de charge sécurisé dont l’adresse IP du site Web et le port sont 443.

Pour créer une configuration similaire à la procédure précédente à partir de l’interface de ligne de commande de l’appliance, exécutez les commandes suivantes :

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

Notes :

  • L’état du serveur virtuel Redirection d’équilibrage de charge du port 80 doit être UP pour que la redirection fonctionne.
  • Les navigateurs Web peuvent ne pas rediriger correctement si le serveur virtuel HTTPS n’est pas actif.
  • Cette configuration de redirection permet des situations où plusieurs domaines sont liés à la même adresse IP.
  • Si le client envoie une requête HTTP non valide au serveur virtuel de redirection, l’appliance envoie un code de message RESET.

Comment rediriger une requête HTTP vers HTTPS en utilisant le répondeur