Un domaine sert à bien plus qu'un site. Vous pouvez avoir app.midominio.com sur une machine, intranet.midominio.com sur une autre et clientes.midominio.com chez un service externe, sans rien acheter de plus : ce sont des sous-domaines, et dans Route 53 chacun est une ligne. Et il y a l'éternelle question du www : faire que les deux façons d'écrire votre domaine mènent au même site. Ce guide règle les deux points et lève un malentendu fréquent : le DNS dit où va chaque nom, mais il ne fait pas de redirections ; c'est le serveur qui s'en charge.
Avant de commencer : ce que signifie chaque chose
- Domaine et sous-domaine
- midominio.com est le domaine ; tout ce qui se trouve devant, séparé par un point (app.midominio.com), est un sous-domaine. On les crée dans le DNS, on ne les achète pas.
- Route 53 et zone hébergée
- Le DNS d'Amazon et le « dossier » de votre domaine à l'intérieur, avec tous ses enregistrements.
- Enregistrement A
- Un nom pointe vers une adresse IP. C'est ce qu'on utilise pour une machine à vous.
- Enregistrement CNAME
- Un nom pointe vers un autre nom. Il sert pour les services externes (« clientes.midominio.com va vers quelque-chose.fournisseur.com »). On ne peut pas en mettre à la racine du domaine.
- Enregistrement alias
- Une invention de Route 53 qui fonctionne comme un CNAME mais aussi à la racine, pour pointer vers des services AWS (CloudFront, répartiteurs de charge, buckets).
- Joker (*)
- Un enregistrement *.midominio.com répond pour tout sous-domaine qui n'a pas son propre enregistrement.
- Redirection
- Quand on ouvre une adresse, le navigateur finit sur une autre. C'est le serveur web (ou un service) qui la fait, pas le DNS.
- TTL
- Les secondes pendant lesquelles les autres peuvent mémoriser la réponse. Bas pendant que vous changez des choses, haut quand c'est stable.
Pas à pas
Ouvrez la zone de votre domaine
Console Route 53, Zones hébergées, cliquez sur votre domaine. Vous verrez les enregistrements qu'il a déjà : le A de la racine, peut-être celui de www, les MX du courrier. Chaque nouveau sous-domaine sera un enregistrement de plus dans cette liste.
Créez un sous-domaine vers une machine à vous
Créer un enregistrement. Nom : seulement la partie de devant (
app; Route 53 ajoute le domaine). Type A. Valeur : l'IP fixe de la machine. TTL 300. Créer. En quelques minutes,app.midominio.comarrive sur cette machine ; le serveur web de la machine doit savoir répondre pour ce nom (un « virtual host » ou « server block »), sinon il affichera le site par défaut.Créez un sous-domaine vers un service externe
Votre fournisseur de helpdesk, de boutique ou de newsletter vous dit quelque chose comme « créez un CNAME de
clientesversmidominio.proveedor.com». Faites exactement cela : Créer un enregistrement, nomclientes, type CNAME, valeur le nom qu'on vous a donné (sans http:// et sans barre finale). Si le fournisseur est un service AWS (CloudFront, un répartiteur de charge), utilisez le type A avec la case Alias cochée et choisissez-le dans la liste déroulante.Décidez quoi faire de www
La première chose est que les deux noms arrivent à votre serveur : la racine avec un enregistrement A vers l'IP, et
wwwavec un autre A vers la même IP (ou un CNAME versmidominio.com). Jusque-là, c'est le DNS. La deuxième est de choisir quel est le nom « officiel » (aujourd'hui, le plus courant est sans www) et que l'autre redirige vers lui, pour que Google ne voie pas deux sites identiques et que le cadenas fonctionne sur les deux.Faites la redirection sur le serveur
Cela ne se fait pas dans Route 53. Sur la machine, le serveur web doit répondre à
www.midominio.compar une redirection permanente (code 301) versmidominio.com. Dans Apache, dans le bloc du site :RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.midominio\.com$ [NC] RewriteRule ^(.*)$ https://midominio.com/$1 [R=301,L]Dans Nginx, c'est un bloc
serverpour www avec unreturn 301. Si vous utilisez les images Bitnami de Lightsail, l'outilbncert-toolpose exactement cette question au moment d'installer le certificat et le configure pour vous. Le certificat HTTPS doit couvrir les deux noms.Vérifiez et montez le TTL
Ouvrez les quatre combinaisons (avec et sans www, en http et en https) : toutes doivent finir sur
https://midominio.comavec le cadenas. Ouvrez le nouveau sous-domaine. Quand tout est stable depuis quelques jours, montez le TTL des enregistrements à 3600 ou plus : moins de requêtes et des réponses plus rapides.
Ce qui peut mal tourner
Route 53 ne me laisse pas créer un CNAME à la racine
C'est une règle du DNS. À la racine, utilisez un enregistrement A avec l'IP, ou un alias si la destination est un service AWS. Si la destination est un service externe qui ne vous donne qu'un nom, demandez-lui s'il a une IP fixe ou mettez CloudFront devant.
Le sous-domaine résout mais affiche un autre site
Le DNS a fait sa part ; le serveur ne sait pas que ce nom est le sien et affiche le site par défaut. Ajoutez le nom au virtual host (Apache) ou au server block (Nginx) du site concerné.
Je veux un sous-domaine par client sans créer les enregistrements un à un
Créez un enregistrement joker : nom *, type A, IP de la machine. N'importe quel loquesea.midominio.com y arrivera, et votre application décide quoi afficher selon le nom. Les enregistrements précis que vous créez à part ont la priorité sur le joker.
J'ai changé un enregistrement et rien ne change
TTL. Les serveurs intermédiaires gardent l'ancienne réponse en mémoire jusqu'à son expiration. Baissez le TTL quelques jours avant un changement prévu ; si c'est déjà fait, il ne reste qu'à attendre.
Dans Simplio
Dans Simplio, chaque domaine Route 53 est une carte où les enregistrements se lisent en langage courant, et créer un sous-domaine consiste à choisir le nom et la machine de destination dans une liste : l'IP, c'est Simplio qui la renseigne. Les enregistrements de services externes s'ajoutent en une ligne, avec une aide selon le type ; remplacer un enregistrement existant demande une confirmation et en retirer un demande le double facteur. Et le journal d'activité garde qui a changé quoi.
La même chose, dans AWS et dans Simplio
| Dans la console AWS | Dans Simplio | |
|---|---|---|
| Créer un sous-domaine | Route 53, Créer un enregistrement, choisir le type parmi 12 options, TTL | Ligne « app → cette machine » sur la carte du domaine, avec l'IP déjà renseignée |
| Savoir où pointe chaque nom | Lire la table des enregistrements techniques | Liste en langage courant : « le site va sur la machine X, le courrier est reçu par Y » |
| Casser quelque chose | N'importe qui ayant accès peut supprimer un enregistrement | Retirer un enregistrement demande le double facteur ; NS et SOA sont protégés |