Comment rediriger un domaine vers un autre domaine à l'aide d'un Application Load Balancer ? 

Dernière mise à jour : 05/02/2021

Comment rediriger un domaine vers un autre domaine à l'aide d'un Application Load Balancer ?

Brève description

Le service Application Load Balancer prend en charge la redirection des noms de domaine ainsi que la redirection HTTP vers HTTPS. Si vous avez un domaine pointant vers un Application Load Balancer, il est recommandé de configurer la redirection à l'aide de l'Application Load Balancer plutôt que d'Amazon Simple Storage Service (Amazon S3).

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Si vous utilisez un Application Load Balancer dans le cadre de votre configuration, vous pouvez l'utiliser pour rediriger un domaine vers un autre :

  1. Ouvrez la console Amazon Elastic Compute Cloud (Amazon EC2).
  2. Dans le volet de navigation, sous Load Balancers (Équilibrage de charge), choisissez Load Balancing (Équilibrage de charge).
  3. Sélectionnez votre équilibreur de charge, puis choisissez vos Listeners (Écouteurs).
  4. Choisissez View/edit rules (Afficher/Modifier les règles) pour l'écouteur d'équilibreur de charge que vous souhaitez utiliser.
  5. Choisissez l'icône Add rule (Ajouter une règle) (le signe plus).
  6. Choisissez Insert Rule (Insérer une règle).
  7. Choisissez Add condition (Ajouter une condition).
  8. Dans la section Conditions (IF), choisissez Add condition (Ajouter une condition).
    Choisissez Host header (en-tête de l'hôte), puis saisissez le nom de votre hôte (par exemple, example.com).
    Pour enregistrer, choisissez l'icône en forme de coche.
  9. Dans la section Actions (THEN), choisissez Add action (Ajouter une action).
    Choisissez Redirect to (Rediriger vers).
    Spécifiez le protocole et le port en fonction de votre cas d'utilisation.
    Changez Original host, path, query (Hôte d'origine, chemin d'accès, requête) en Custom host, path, query (Hôte personnalisé, chemin d'accès, requête).
    Pour Host (Hôte), saisissez example2.com.
    Pour Path (Chemin d'accès) et Query (Requête), conservez les valeurs par défaut (à moins que votre cas d'utilisation ne vous oblige à les modifier).
    Définissez la réponse sur HTTP 301 "Permanently moved" ou HTTP 302 "Found".
    Pour enregistrer, choisissez l'icône en forme de coche.
    La section THEN s'affiche :
    Rediriger vers https://example2.com:443/#{path}?#{query}
    Code d'état : HTTP_301
  10. Sélectionnez Save (Enregistrer).

Remarque : si les deux domaines pointent vers le même Application Load Balancer, assurez-vous :

  • d'avoir des certificats distincts pour les deux domaines, OU
  • d'utiliser un certificat SAN (Subject Alternative Name) pour valider les domaines

Pour confirmer que la redirection fonctionne :

1.    Dans l'interface de ligne de commande AWS, utilisez la fonction curl.

curl
    -Iv https://example1.com -L
* Rebuilt URL to: https://example1.com/
. . . 
* Connected to example1.com (1.2.3.4) port 443 (#0)
<SSL handshake> 
> Host: example1.com.   ———> Host name is example1.com 
> User-Agent: curl/7.61.1
>
    Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 301       ———> ALB does redirection 
< server: awselb/2.0
< date: Fri, 06 Mar 2020 09:18:33 GMT
< content-type: text/html
< content-length: 150
    
< location: https://example2.com:443/.   ——> redirected to “example2.com” 
< 
* Issue another request to this URL: 'https://example2.com:443/‘. ———> Curl initiates another request that is to example2.com 
*   Trying 34.195.219.169...
    
* TCP_NODELAY set
<SSL handshake> 
> Host: example2.com.   ———> Host name has changed to example2.com 
> User-Agent: curl/7.61.1
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
<
    HTTP/2 200 ——> We got a response

2.    Dans votre navigateur Internet, saisissez example1.com et confirmez qu'il redirige vers example2.com.