Cette rubrique explique comment configurer une seule écoute sur une instance Classic Load Balancer (CLB) afin d'acheminer les requêtes HTTPS de différents noms de domaine vers différents serveurs principaux. Cette approche vous permet d'héberger plusieurs sites web HTTPS.
Exemple
L'instance CLB inspecte le nom de domaine présent dans la requête HTTPS, sélectionne le certificat correspondant pour finaliser l'authentification, puis transfère la requête au serveur principal approprié en fonction de vos règles de transfert.
Cette rubrique s'appuie sur la configuration suivante à titre d'exemple :
Le certificat par défaut de l'écouteur, nommé
default, est associé au nom de domainealiyundoc.com. Le groupe de serveurs par défaut est RS1.Un certificat supplémentaire,
example1, est associé au nom de domainewww.example.com. Les requêtes adressées àhttps://www.example.comsont acheminées vers le groupe de serveurs RS1.Un autre certificat supplémentaire,
example2, est associé au nom de domainewww.example.org. Les requêtes adressées àhttps://www.example.orgsont acheminées vers le groupe de serveurs RS2.
Prérequis
Une instance CLB a été créée. Pour plus d'informations, consultez la section Créer et gérer une instance CLB.
Deux groupes vServer, RS1 et RS2, ont été créés. Pour plus d'informations, consultez la section Créer et gérer un groupe vServer.
Une instance ECS, ECS01, a été ajoutée à RS1, et une autre instance ECS, ECS02, a été ajoutée à RS2. Des services applicatifs sont déployés sur ECS01 et ECS02.
Vous avez enregistré des noms de domaine et effectué la procédure ICP. Pour plus d'informations, consultez les sections Enregistrer un nom de domaine sur Alibaba Cloud et Procédure d'enregistrement ICP.
-
Vous devez acheter ou importer des certificats auprès d'un tiers vers Certificate Management Service et les lier à leurs noms de domaine respectifs. Pour plus d'informations, consultez la section Activer l'accès HTTPS pour un service web à l'aide d'un certificat officiel. Les certificats suivants sont requis pour cette rubrique :
Un certificat par défaut nommé
defaultlié au nom de domainealiyundoc.com.Un certificat nommé
example1lié au nom de domainewww.example.com.Un certificat nommé
example2lié au nom de domainewww.example.org.
RemarqueVous devez déployer les certificats sur l'instance CLB avant de pouvoir les utiliser. Pour plus d'informations, consultez la section Créer un certificat.
Étape 1 : Ajouter une écoute HTTPS
Connectez-vous à la console CLB.
Dans la barre de menu supérieure, sélectionnez la région où se trouve l'instance CLB.
Sur la page Instances, repérez l'instance CLB cible et, dans la colonne Actions, cliquez sur Configure Listener.
-
Sous l'onglet Protocol & Listener, configurez les paramètres suivants et cliquez sur Next.
Cette rubrique ne décrit que les paramètres obligatoires. Vous pouvez laisser les autres paramètres avec leurs valeurs par défaut ou les configurer selon vos besoins.
Select Listener Protocol : sélectionnez HTTPS.
Listener Port : définissez le port sur 443.
Sous l'onglet Certificate Management Service, sélectionnez le certificat de serveur importé et cliquez sur Next. Dans cet exemple, nous sélectionnons le certificat
default.Sous l'onglet Backend Servers, sélectionnez vServer group, puis choisissez RS1 dans la liste déroulante Server Group.
Conservez les valeurs par défaut pour les autres paramètres et cliquez sur Next jusqu'à atteindre l'étape de confirmation. Cliquez ensuite sur Submit.
Étape 2 : Ajouter des noms de domaine supplémentaires
Sur la page Instances, repérez l'instance CLB cible, puis cliquez sur son ID.
Sous l'onglet Listener, repérez l'écouteur HTTPS que vous avez créé. Dans la colonne Actions, cliquez sur l'icône
et sélectionnez Manage Additional Certificate.-
Dans le panneau Manage Additional Certificate, cliquez sur Add Additional Certificate.
Pour le champ Additional Certificate, saisissez
www.example.com. Dans la liste déroulante Server Certificate, sélectionnez le certificat associé àwww.example.com, puis cliquez sur OK.Pour le champ Additional Certificate, saisissez
www.example.org. Dans la liste déroulante Server Certificate, sélectionnez le certificat associé àwww.example.org, puis cliquez sur OK.
RemarqueAssurez-vous que le nom de domaine figurant dans le certificat correspond exactement au nom de domaine supplémentaire que vous ajoutez.
RemarqueTenez compte des limitations suivantes lors de l'ajout de noms de domaine supplémentaires :
Les noms de domaine génériques ne prennent pas en charge la correspondance SNI. Les noms de domaine supplémentaires génériques tels que
*.example.comne peuvent pas faire l'objet d'une correspondance via SNI lors de l'établissement de la liaison TLS. Lorsqu'un client spécifie un sous-domaine dans le champ SNI, le CLB ne peut pas utiliser le nom de domaine supplémentaire générique pour sélectionner le certificat correspondant. Utilisez des noms de domaine à correspondance exacte tels quewww.example.comcomme noms de domaine supplémentaires.Des règles de transfert sont requises. Un nom de domaine supplémentaire doit être utilisé conjointement avec une règle de transfert. Si vous ajoutez un nom de domaine supplémentaire sans configurer de règle de transfert correspondante à l'étape 3, le protocole SNI n'entre pas en vigueur et le CLB traite la requête à l'aide du certificat par défaut.
Repli sur le certificat par défaut. Si une requête HTTPS ne correspond à aucun nom de domaine supplémentaire, le CLB utilise le certificat par défaut pour traiter la requête. Il s'agit du comportement attendu.
Repli en cas de certificat expiré. Lorsque le certificat de serveur associé à un nom de domaine supplémentaire expire, le CLB ignore automatiquement la logique de correspondance SNI pour ce certificat expiré. Même si le nom de domaine dans le champ SNI du client correspond exactement au domaine du certificat expiré, le CLB n'utilise pas ce dernier et revient au certificat par défaut configuré sur l'écouteur HTTPS. Cela peut amener les clients à recevoir le certificat par défaut au lieu du certificat spécifique au domaine attendu, entraînant des avertissements d'inadéquation de certificat SSL/TLS. Pour éviter toute interruption de service, renouvelez les certificats des noms de domaine supplémentaires avant leur expiration.
Étape 3 : Configurer les règles de transfert
Sur la page Instances, cliquez sur l'ID de l'instance CLB cible.
Sous l'onglet Listener, repérez l'écouteur et cliquez sur Set Forwarding Rule dans la colonne Actions.
-
Dans le panneau Add Forwarding Rules, ajoutez des règles de transfert.
Dans cet exemple, seules des règles de transfert basées sur le nom de domaine sont configurées. Les paramètres URL ne sont pas configurés.
Dans la colonne Domain Name, saisissez
www.example.com, sélectionnez le groupe vServer RS1, puis cliquez sur Add Forwarding Policy.Dans la colonne Domain Name, saisissez
www.example.org, sélectionnez le groupe vServer RS2, puis cliquez sur Add Forwarding Policy.
Une fois les règles de transfert configurées, fermez le panneau Add Forwarding Rules.
Étape 4 : Configurer la résolution des noms de domaine
Ajoutez des enregistrements A pour www.example.com et www.example.org afin qu'ils pointent vers l'adresse IP publique de l'instance CLB.
Connectez-vous à la console CLB.
Dans la barre de navigation supérieure, sélectionnez une région.
Sélectionnez l'instance CLB pour la résolution de nom de domaine et copiez son adresse IP publique correspondante.
-
Pour ajouter un enregistrement A :
Connectez-vous à la console Alibaba Cloud DNS.
Sur la page Public Zone, cliquez sur Add Zone.
-
Dans la boîte de dialogue Add Zone, saisissez votre nom de domaine et cliquez sur OK.
ImportantVérifiez la propriété de votre domaine à l'aide d'un enregistrement TXT.
Repérez le nom de domaine que vous souhaitez gérer et cliquez sur Settings dans la colonne Actions.
Sur la page Settings, cliquez sur Add Record.
-
Dans le panneau Add Record, configurez les paramètres suivants pour ajouter un enregistrement A, puis cliquez sur OK.
Parameter
Description
Record Type
Sélectionnez A dans la liste déroulante.
Hostname
Le préfixe de votre nom de domaine.
Query Source
Sélectionnez Default.
Record Value
La valeur d'enregistrement correspond à l'adresse IP publique de l'instance CLB que vous avez copiée.
TTL
Durée de vie (TTL). Ce paramètre définit la durée pendant laquelle l'enregistrement DNS est mis en cache sur un serveur DNS. Cet exemple utilise la valeur par défaut.
Étape 5 : Vérifier les résultats
Une fois la configuration terminée, saisissez https://www.example.com et https://www.example.org dans un navigateur pour vérifier que les règles de transfert fonctionnent correctement. Cet exemple suppose que vous avez déployé une page web statique simple sur chaque serveur principal.
Saisissez
https://www.example.comdans votre navigateur. La requête est acheminée vers ECS01 dans le groupe de serveurs RS1. La page afficheHello World ! This is ECS01.Saisissez
https://www.example.orgdans votre navigateur. La requête est acheminée vers ECS02 dans le groupe de serveurs RS2. La page afficheHello World ! This is ECS02.
Si le test échoue, essayez de vider le cache de votre navigateur et recommencez le test.
FAQ
Q : Après avoir configuré des noms de domaine supplémentaires, les requêtes HTTPS renvoient toujours le certificat par défaut. Comment résoudre ce problème ?
Vérifiez si vous utilisez des noms de domaine à correspondance exacte. Les noms de domaine génériques tels que
*.example.comne prennent pas en charge la correspondance SNI automatique sur le CLB. Utilisez des noms de domaine à correspondance exacte tels quewww.example.comcomme noms de domaine supplémentaires.Vérifiez si des règles de transfert sont configurées. Un nom de domaine supplémentaire seul ne suffit pas pour que le protocole SNI entre en vigueur. Vous devez également configurer une règle de transfert pour chaque nom de domaine supplémentaire. Consultez l'étape 3 : Configurer les règles de transfert pour vérifier qu'une règle de transfert existe pour votre nom de domaine supplémentaire.
Vérifiez si le nom de domaine du certificat correspond au nom de domaine supplémentaire. Le nom de domaine figurant dans le certificat doit correspondre exactement au nom de domaine supplémentaire que vous avez configuré. Toute inadéquation entraîne le repli du CLB sur le certificat par défaut.
-
Vérifiez le comportement SNI à l'aide d'openssl. Exécutez la commande suivante pour vérifier quel certificat le CLB renvoie pour un nom de domaine spécifique :
openssl s_client -connect <CLB_VIP>:443 -servername <domain_name>Dans la sortie, vérifiez le champ
subjectdu certificat renvoyé. Si le sujet affiche le nom de domaine par défaut au lieu de votre nom de domaine prévu, vérifiez que le nom de domaine supplémentaire et la règle de transfert sont correctement configurés. Vérifiez la configuration des domaines d'extension dans la console. Sur la page Instances, cliquez sur l'ID de l'instance CLB cible, accédez à l'onglet Listeners, repérez l'écouteur HTTPS et, dans la colonne Actions, choisissez
> Manage Certificates pour vérifier le certificat par défaut et les domaines d'extension configurés. Si la liste Manage Additional Certificate est vide, aucun domaine d'extension n'est configuré et toutes les requêtes HTTPS utilisent le certificat par défaut de l'écouteur. Suivez l'étape 2 pour ajouter des domaines d'extension pour chaque domaine et lier les certificats de serveur correspondants.Vérifiez la configuration des domaines d'extension à l'aide de l'API. Appelez l'API
DescribeLoadBalancerHTTPSListenerAttributepour interroger le champDomainExtensionset vérifier l'état de la configuration des domaines d'extension. Si la réponse contient"DomainExtension": [](tableau vide), aucun domaine d'extension n'est configuré et toutes les requêtes de domaine utilisent le certificat par défaut. Lorsque des domaines d'extension sont configurés, vérifiez que les champsDomainetServerCertificateIdde chaque entrée correspondent au domaine et au certificat attendus.Comprenez la limitation de la correspondance des certificats génériques. Si le certificat de serveur lié à un domaine d'extension est un certificat générique (le domaine de liaison est au format
*.example.com), notez ce qui suit : lorsque plusieurs domaines d'extension sous le même écouteur HTTPS utilisent des certificats génériques, seul le premier certificat générique est automatiquement utilisé pour la correspondance SNI. Les domaines d'extension restants doivent être liés à des certificats de domaine à correspondance exacte individuels ; sinon, le certificat par défaut de l'écouteur est renvoyé.
Documents connexes
Pour transférer les requêtes vers différents chemins URL d'un même nom de domaine vers différents groupes de serveurs principaux, consultez la section Utiliser des règles de transfert basées sur le même nom de domaine mais des chemins différents pour réaliser un transfert de trafic précis.
Pour plus d'informations sur les règles de transfert basées sur le nom de domaine et l'URL, consultez la section Transférer les requêtes en fonction des noms de domaine ou des URL.
Pour obtenir les instructions complètes de configuration des domaines d'extension, consultez la section Vue d'ensemble des domaines d'extension CLB.