Configurez plusieurs certificats sur une seule instance Global Accelerator afin d'accélérer l'accès à plusieurs domaines HTTPS.
Cas d'utilisation
Une entreprise dont le siège social se trouve aux États-Unis (Silicon Valley) a déployé deux services web sur des serveurs Alibaba Cloud, chacun utilisant un nom de domaine différent. Ses clients sont principalement situés en Chine (Hong Kong) et les services web rencontrent les difficultés suivantes :
L'instabilité des connexions au réseau public entraîne une latence élevée, du gigue et une perte de paquets.
L'accélération de chaque domaine séparément engendre des coûts élevés.
Pour résoudre ces problèmes, l'entreprise prévoit de déployer Global Accelerator avec un écouteur HTTPS. Un écouteur HTTPS accélère l'accès à plusieurs domaines HTTPS grâce aux fonctionnalités suivantes :
Il permet de lier plusieurs certificats pour associer plusieurs domaines à un seul écouteur HTTPS.
Il prend en charge des règles de transfert basées sur le domaine, qui acheminent les requêtes destinées à différents domaines vers leurs serveurs backend correspondants.
Il chiffre les requêtes clientes pour garantir la sécurité des données lors de la transmission.
Le tableau suivant décrit les détails du serveur web et le plan de transfert des requêtes après le déploiement de Global Accelerator.
Élément | Domaine 1 | Domaine 2 |
Protocole de l'écouteur | HTTPS | |
Port de l'écouteur | 443 | |
Certificat correspondant | certificat par défaut A | certificat supplémentaire B |
Règle de transfert correspondante | règle de transfert par défaut | règle de transfert personnalisée |
Groupe de points de terminaison correspondant | groupe de points de terminaison par défaut | groupe de points de terminaison virtuel |
Serveur correspondant | Serveur 1 | Serveur 2 |
Protocole du service backend | HTTP | HTTPS |
Port du service backend | 80 | 443 |
Adresse IP publique du serveur | 47.XX.XX.62 | 47.XX.XX.34 |
Les certificats configurés dans Global Accelerator chiffrent les données envoyées par les clients vers l'instance. Les certificats installés sur les serveurs backend chiffrent les données transmises de Global Accelerator vers les serveurs.
Prérequis
Vous avez acheté un certificat SSL et soumis une demande de certificat. Pour plus d'informations, reportez-vous à Sélectionner et acheter un certificat et Soumettre une demande de certificat.
Vous avez téléchargé le fichier de certificat sur les serveurs backend. Pour plus d'informations, consultez Télécharger un fichier vers une instance ECS à l'aide de Cloud Assistant.
Vos serveurs backend Serveur 1 et Serveur 2 fournissent des services respectivement via le port HTTP 80 et le port HTTPS 443.
Vous avez configuré la résolution DNS pour le Domaine 1 (xxxtest.cloud) et le Domaine 2 (xxxtest.fun). Plus précisément, vous avez configuré des enregistrements A qui pointent les domaines vers les adresses IP publiques des serveurs backend.
Cette rubrique explique comment utiliser Nginx pour configurer des services backend s'exécutant sur le port HTTP 80 et le port HTTPS 443, et utiliser Alibaba Cloud DNS pour configurer des enregistrements DNS. Si vous utilisez un autre fournisseur de services DNS, suivez ses instructions.
Procédure
Cette rubrique utilise une instance Global Accelerator standard à la demande comme exemple pour vous montrer comment configurer Global Accelerator afin d'accélérer l'accès à plusieurs domaines HTTPS. Avant de créer une instance Global Accelerator standard à la demande, tenez compte des informations suivantes :
Les instances GA à la demande utilisent Pay-By-Data-Transfer pour la facturation de la bande passante. Vous n'avez pas besoin d'associer un forfait de bande passante. Cloud Data Transfer (CDT) gère la facturation du trafic.
La première fois que vous utilisez une instance GA à la demande, vous devez Activer le service.
Étape 1 : Configurer les informations de base
Connectez-vous à la console Global Accelerator.
Sur la page Instances, cliquez sur Create Standard Pay-as-you-go Instance.
-
Dans l'étape Basic Instance Configuration, configurez les paramètres selon le tableau suivant et cliquez sur Next.
Paramètre
Description
GA Instance Name
Saisissez un nom pour l'instance GA.
Instance Billing Method
Pay-As-You-Go est sélectionné par défaut.
Vous êtes facturé pour les frais d'instance, frais CU et les frais de transfert de données pour les instances Global Accelerator à la demande.
Resource Group
Sélectionnez le groupe de ressources auquel appartient l'instance standard.
Le groupe de ressources doit être créé par le compte Alibaba Cloud actuel dans Resource Management. Pour plus d'informations, consultez Créer un groupe de ressources.
Étape 2 : Configurer une zone d'accélération
Configurez des zones d'accélération pour une instance Global Accelerator afin de spécifier les régions où se trouvent vos utilisateurs et d'allouer de la bande passante pour accélérer l'accès à vos services backend.
Dans l'étape Configure Acceleration Area, configurez les paramètres selon le tableau suivant et cliquez sur Next.
Paramètre | Description |
Acceleration Area | Sélectionnez une ou plusieurs régions dans la liste déroulante et cliquez sur Add. Dans cet exemple, la région China (Hong Kong) de la section Asia Pacific est sélectionnée. |
Assign Bandwidth | |
Maximum Bandwidth | Spécifiez la bande passante maximale pour la zone d'accélération. Chaque zone d'accélération prend en charge une plage de bande passante de 2 à 10 000 Mbit/s. La bande passante maximale est utilisée pour la limitation de débit. Les frais de transfert de données sont gérés par CDT. Dans cet exemple, la valeur par défaut 200 Mbit/s est utilisée. Important Si vous spécifiez une valeur faible pour la bande passante maximale, une limitation peut se produire et des paquets peuvent être perdus. Spécifiez une bande passante maximale adaptée à vos besoins. |
IP Protocol | Sélectionnez la version IP utilisée pour se connecter à Global Accelerator. Dans cet exemple, la valeur par défaut IPv4 est sélectionnée. |
ISP Line Type | Sélectionnez un type de ligne FAI pour l'instance Global Accelerator. Dans cet exemple, BGP (Multi-ISP) est sélectionné. |
Étape 3 : Configurer un écouteur
Un écouteur vérifie et traite les demandes de connexion entrantes en fonction du port et du protocole que vous spécifiez. Chaque écouteur est associé à un ou plusieurs groupes de points de terminaison. Après avoir associé un groupe de points de terminaison à un écouteur, GA achemine le trafic vers le point de terminaison optimal au sein de ce groupe.
Sur la page Configure Listeners, configurez un écouteur et cliquez sur Next.
Paramètre | Description |
Listener Name | Saisissez un nom pour l'écouteur. |
Routing Type | Sélectionnez un type de routage. Dans cet exemple, sélectionnez Intelligent Routing. |
Protocol | Sélectionnez un protocole pour l'écouteur. Dans cet exemple, sélectionnez HTTPS. |
Port | Spécifiez le port de l'écouteur utilisé pour recevoir et transférer les requêtes vers les points de terminaison. Le numéro de port doit être compris entre 1 to 65499. Dans cet exemple, saisissez 443. |
Server certificate | Sélectionnez le certificat de serveur que vous avez obtenu. Dans cet exemple, sélectionnez le Certificat A. |
TLS security policy | Sélectionnez la politique de sécurité TLS à utiliser. Une politique de sécurité TLS inclut les versions de protocole TLS prises en charge et les suites de chiffrement pour HTTPS. Pour plus d'informations, consultez Politiques de sécurité TLS. Si vous ne configurez pas ce paramètre, la politique par défaut tls_cipher_policy_1_0 est utilisée. |
Client Affinity | Spécifiez s'il faut activer l'affinité client. Lorsqu'elle est activée, toutes les requêtes provenant du même client sont acheminées vers le même point de terminaison. Cette fonctionnalité convient aux applications avec état. Dans cet exemple, sélectionnez Source IP Address. |
Add HTTP Header | Sélectionnez les champs d'en-tête HTTP supplémentaires dont vous avez besoin. Dans cet exemple, la configuration par défaut est utilisée. |
Étape 4 : Configurer un groupe de points de terminaison et des points de terminaison
-
Sur la page Configure an Endpoint Group, configurez un groupe de points de terminaison et des points de terminaison, puis cliquez sur Next.
Cette section décrit uniquement les paramètres hautement pertinents pour ce scénario. Pour plus d'informations, consultez Ajouter et gérer des groupes de points de terminaison pour les écouteurs de routage intelligent.
Paramètre
Description
Region
Sélectionnez la région où le groupe de points de terminaison est déployé.
Dans cet exemple, sélectionnez US (Silicon Valley).
Endpoint Configuration
Les points de terminaison sont les hôtes de destination pour les requêtes clientes. Configurez les points de terminaison en fonction des informations suivantes :
Backend Service Type : Sélectionnez Alibaba Cloud Public IP.
Backend Service : Saisissez l'adresse IP du service backend à accélérer. Dans cet exemple, saisissez l'adresse IP publique du Serveur 1 : 47.XX.XX.62.
Weight : Saisissez un poids pour le point de terminaison. La valeur doit être comprise entre 0 et 255. Global Accelerator achemine le trafic vers les points de terminaison en fonction de leurs poids. Dans cet exemple, la valeur par défaut 255 est utilisée.
AvertissementSi le poids d'un point de terminaison est défini sur 0, Global Accelerator arrête de distribuer le trafic vers ce point de terminaison. Agissez avec prudence.
Preserve Client IP
La fonctionnalité de conservation de l'IP client, activée par défaut, permet aux services backend de récupérer les adresses IP des clients. Un écouteur HTTP lit l'adresse IP source du client à partir du champ x-forwarded-for dans l'en-tête HTTP. Pour plus d'informations, consultez Conserver les adresses IP des clients.
Backend Service Protocol
Sélectionnez le protocole de service utilisé par le serveur backend.
Le protocole par défaut est HTTP.
Port Mapping
Si le port de l'écouteur diffère du port de service de votre point de terminaison, vous devez configurer le mappage de ports.
Listener Port : Ce paramètre doit être défini sur le port de l'écouteur actuel. Dans cet exemple, saisissez 443.
Endpoint Port : Le port de service de votre point de terminaison. Dans cet exemple, saisissez 80.
Traffic Distribution Ratio
Spécifiez le pourcentage de trafic à transférer vers le groupe de points de terminaison.
Valeurs valides : 0 à 100.
Dans cet exemple, la valeur par défaut de 100 % est utilisée.
Health Check
Activez ou désactivez les contrôles d'intégrité.
Si vous activez cette fonctionnalité, le système vérifie l'état d'intégrité des points de terminaison. Pour plus d'informations, consultez Activer et gérer les contrôles d'intégrité.
Dans cet exemple, les contrôles d'intégrité sont désactivés par défaut.
Sur la page Configuration Review, vérifiez les paramètres et cliquez sur Submit. La création d'une instance GA prend environ 3 à 5 minutes.
Facultatif : Une fois l'instance créée, cliquez sur Go to Instance Details sous la liste des détails de la tâche. Sur la page des détails de l'instance, vous pouvez sélectionner des onglets tels que Instance Information, Listeners et Acceleration Areas pour afficher la configuration de l'instance.
-
Configurez un groupe de points de terminaison virtuel.
Sur la page des détails de l'instance, cliquez sur l'onglet Listeners.
Sur l'onglet Listener, recherchez l'écouteur que vous souhaitez gérer et cliquez sur l'ID du groupe de points de terminaison dans la colonne Default Endpoint Group.
Sur l'onglet Endpoint Group, dans la section Virtual Endpoint Group, cliquez sur Add Virtual Endpoint Group.
-
Sur la page Add Endpoint Group, configurez les paramètres en fonction des informations suivantes, puis cliquez sur Create.
À l'exception des paramètres répertoriés ci-dessous, configurez tous les autres paramètres de la même manière que pour le groupe de points de terminaison par défaut.
Backend Service Type : Sélectionnez Alibaba Cloud Public IP.
Backend Service : Saisissez l'adresse IP publique du Serveur 2 : 47.XX.XX.34.
Backend Service Protocol : Sélectionnez HTTPS.
-
Port Mapping : Aucun mappage de port n'est requis.
Si le port de l'écouteur est identique au port de service de votre point de terminaison, le mappage de port n'est pas nécessaire. Global Accelerator transfère automatiquement les demandes d'accès vers le port de service du point de terminaison.
Étape 5 : Lier un certificat supplémentaire
Lieez un certificat supplémentaire à un écouteur HTTPS pour associer un autre domaine. Combiné aux règles de transfert basées sur le domaine, cela permet d'acheminer les requêtes pour différents domaines vers différents groupes de points de terminaison virtuels.
Les étapes suivantes décrivent comment associer le Domaine 2 (xxxtest.fun) à l'écouteur HTTPS en liant le Certificat B.
Sur l'onglet Listener, recherchez l'écouteur HTTPS cible et cliquez sur son ID.
Sur la page des détails de l'écouteur, cliquez sur Certificates.
Sur Certificates, dans la section Additional Certificate, cliquez sur Associate Certificate.
-
Dans la boîte de dialogue Associate Certificate, configurez le certificat supplémentaire en fonction des informations suivantes, puis cliquez sur OK.
Certificate : Sélectionnez le certificat à lier. Dans cet exemple, sélectionnez le Certificat B.
Associated Domain Name : Sélectionnez le domaine associé à ce certificat que vous souhaitez accélérer à l'aide de Global Accelerator. Dans cet exemple, sélectionnez le Domaine 2 (xxxtest.fun).
Étape 6 : Ajouter une règle de transfert
Lorsqu'un écouteur HTTPS reçoit une requête, il la compare aux règles de transfert personnalisées. Si une règle correspond, l'écouteur transfère la requête vers le groupe de points de terminaison correspondant. Si aucune règle personnalisée ne correspond, la requête est transférée vers le groupe de points de terminaison par défaut.
Les étapes suivantes décrivent comment créer une règle de transfert personnalisée pour le groupe de points de terminaison virtuel du Serveur 2. Cette règle achemine toutes les requêtes destinées au Domaine 2 (xxxtest.fun) vers le Serveur 2.
Sur l'onglet Listener, recherchez l'écouteur HTTPS cible et cliquez sur son ID.
Sur la page des détails de l'écouteur, cliquez sur l'onglet Forwarding Rule.
Sur l'onglet Forwarding Rule, cliquez sur Add Forwarding Rule.
-
Dans la section Add Forwarding Rule, configurez la règle de transfert en fonction des informations suivantes et cliquez sur OK.
Paramètre
Description
Name
Saisissez un nom pour la règle de transfert.
If (Matching All Conditions)
Configurez une condition de transfert.
Dans cet exemple, sélectionnez Domain Name et saisissez le domaine à faire correspondre : xxxtest.fun.
Forwarding action
Sélectionnez le type d'action et la cible de transfert.
Dans cet exemple, sélectionnez Forward to et sélectionnez le groupe de points de terminaison virtuel que vous avez créé à l'Étape 4 : configurer un groupe de points de terminaison et des points de terminaison.
Étape 7 : Configurer un enregistrement CNAME
Vous devez pointer le Domaine 1 (xxxtest.cloud) et le Domaine 2 (xxxtest.fun) vers l'adresse CNAME de l'instance Global Accelerator dans le DNS. Cela garantit que les demandes d'accès sont acheminées via Global Accelerator.
-
Sur la page Domains, recherchez votre domaine (xxxtest.cloud) et cliquez sur DNS settings dans la colonne Actions.
RemarqueSi votre domaine n'est pas enregistré auprès d'Alibaba Cloud, vous devez ajouter le domaine à la console Alibaba Cloud DNS avant de pouvoir configurer des enregistrements DNS.
Sur la page Paramètres DNS, recherchez l'enregistrement A existant et cliquez sur Edit dans la colonne Actions.
-
Dans le panneau Modify record, définissez Record Type sur CNAME, modifiez la Record Value pour qu'elle corresponde à l'adresse CNAME attribuée à l'instance Global Accelerator, puis cliquez sur Confirm.
Vous pouvez trouver l'adresse CNAME attribuée à l'instance Global Accelerator sur la page Instances.
Répétez les étapes précédentes pour modifier l'enregistrement A existant pour le Domaine 2 (xxxtest.fun) en un enregistrement CNAME.
Si vous devez renvoyer des résultats de résolution en fonction de la région du client, assurez-vous d'avoir mis à niveau Alibaba Cloud DNS vers l'édition Enterprise Standard ou Enterprise Ultimate. Pour plus d'informations sur la mise à niveau, consultez Renouveler une instance.
Après la mise à niveau, vous pouvez modifier la ligne DNS par défaut de l'enregistrement A existant vers une ligne régionale spécifique et ajouter un enregistrement CNAME pointant vers l'adresse CNAME attribuée à l'instance Global Accelerator.
Étape 8 : Tester la configuration
Testez si les clients peuvent accéder aux services web déployés aux États-Unis (Silicon Valley) via les différents domaines avec un accès accéléré.
Cette rubrique utilise Alibaba Cloud Linux 3 comme exemple. Les commandes de test peuvent varier selon le système d'exploitation. Reportez-vous à la documentation de votre système d'exploitation pour les commandes spécifiques.
L'effet d'accélération du service Global Accelerator dépend de vos tests métier réels.
Tester la connectivité du site web
Ouvrez une fenêtre de ligne de commande sur un ordinateur situé dans la zone d'accélération. Dans cet exemple, la zone d'accélération est la Chine (Hong Kong).
-
Exécutez la commande suivante pour le Domaine 1 (xxxtest.cloud) et le Domaine 2 (xxxtest.fun) afin de vérifier que la configuration CNAME a pris effet.
ping <website_domain>Si le résultat de résolution renvoyé correspond au CNAME de l'instance Global Accelerator, la configuration CNAME est effective.
[root@iZjxxx ~]# ping xxx_test.cloud PING ga-bp1xxx9.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=101 time=1.60 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.593/1.595/1.598/0.002 ms [root@iZjxxx ~]# ping xxx_test.fun PING ga-bp1xxx.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=96 time=1.58 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=96 time=1.53 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=96 time=1.51 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.508/1.539/1.576/0.042 ms -
Exécutez la commande suivante pour le Domaine 1 (xxxtest.cloud) et le Domaine 2 (xxxtest.fun) afin de tester la connectivité du site web et de vérifier que le certificat est récupéré.
curl -v https://<website_domain> --resolve <website_domain>:<listener_port>:<accelerated_IP>Le résultat de test suivant pour le Domaine 1 (xxxtest.cloud) sert d'exemple. Si la sortie inclut les informations du certificat et une réponse valide, le service web fonctionne comme prévu.
[root@iZxxx]# curl -v https://xxx_test.cloud --resolve xxx_test.cloud:443:8.217.xxx * Added xxx_test.cloud:443:8.217.xxx to DNS cache * Rebuilt URL to: https://xxx_test.cloud/ * Hostname xxx_test.cloud was found in DNS cache * Trying 8.217.xxx... * TCP_NODELAY set * Connected to xxx_test.cloud (8.217.xxx) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=xxx_test.cloud * start date: Mar 1 00:00:00 2024 GMT * expire date: Mar 31 23:59:59 2025 GMT * subjectAltName: host "xxx_test.cloud" matched cert's "xxx_test.cloud" * issuer: C = US; O = DigiCert Inc; CN = DigiCert Global G2 TLS RSA SHA256 2020 CA1 * SSL certificate verify ok. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x55d6e15b76b0) > GET / HTTP/2 > Host: xxx_test.cloud > User-Agent: curl/7.61.1 > Accept: */* > * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! < HTTP/2 200 < date: Thu, 14 Sep 2023 09:00:09 GMT < content-type: text/html < content-length: 299 < last-modified: Mon, 11 Sep 2023 10:27:09 GMT < etag: "64feeb7d-12b" < accept-ranges: bytes < <!DOCTYPE html> <html> <head> <title>HTTP Server Test Page</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to HTTP Server Test Page!</h1> <p>This is ECS01.</p> </body> </html> * Connection #0 to host xxx_test.cloud left intact
Tester les performances d'accélération
Pour tester les performances d'accélération, consultez Tester les performances d'accélération de Global Accelerator.