9 min de lectureFonctionnalités

TLS pour domaine personnalisé et liens courts : en 5 minutes

Ajoutez un domaine personnalisé à Elido, publiez un TXT et un CNAME, et obtenez le HTTPS à la première requête. Ce que fait chaque étape et ce qui casse.

Marius Voß
DevRel · edge infra

Configurer un domaine personnalisé avec HTTPS demande un enregistrement TXT, un enregistrement CNAME et une courte attente. Vous ajoutez le nom d'hôte dans Elido, copiez les deux valeurs DNS qu'il vous donne, et le certificat TLS est émis automatiquement la première fois que quelqu'un ouvre un lien sur ce domaine. La partie lente est la propagation DNS, que vous contrôlez avec le TTL. Cet article parcourt les cinq étapes, puis explique la mécanique pour que vous sachiez où regarder quand une étape cale.

Tout ce qui suit a été vérifié le 2026-10-09 par rapport au code et au tableau de bord actuels d'Elido. Quand une fonctionnalité connexe n'est pas encore construite, l'article le dit.

Pourquoi le TLS compte sur un lien court

Un lien court est une redirection, et la réponse de redirection est toute la charge utile. Un 301 ou 302 avec un en-tête Location porte votre URL de destination. Si la première requête circule en HTTP simple, toute personne sur le chemin réseau peut lire cette destination avant que le navigateur ne la suive.

Les QR codes aggravent la situation. Quelqu'un qui scanne un code sur une vitrine ou une affiche n'a aucune relation préalable avec l'URL : la barre d'adresse est donc son seul signal de confiance. Un avertissement du navigateur au scan est la pire première impression possible, et vous avez déjà payé le tirage.

Sur les domaines courts partagés d'Elido, le certificat appartient à Elido : le cadenas est donc réel, mais le nom qui y figure n'est pas le vôtre. Sur go.acme.com, le nom est le vôtre. Pour les fondamentaux DNS et TLS qui sous-tendent cela, voir l'article de référence sur les liens courts à domaine personnalisé.

La liste des domaines personnalisés d'Elido avec un domaine actif, une vérification DNS en attente et une vérification échouée avec une piste de correction

Étape 1 : choisir le nom d'hôte

Choisissez un sous-domaine court que vous contrôlez et que vous n'utilisez pour rien d'autre : go.example.com, links.example.com ou similaire. Le préfixe apparaît dans chaque lien que vous envoyez : plus il est court, mieux c'est.

Utilisez un sous-domaine, pas la racine nue. La RFC 1034 section 3.6.2 dit qu'un nom portant un CNAME ne peut contenir aucune autre donnée, et que la racine d'une zone contient toujours des enregistrements SOA et NS : un CNAME y est donc interdit. Certains fournisseurs DNS le simulent avec des enregistrements ALIAS ou aplatis, mais ceux-ci répondent avec des adresses IP au lieu d'un CNAME. La vérification d'Elido demande le CNAME lui-même : une racine aplatie ne passera donc pas.

Deux règles de plus s'appliquent à l'enregistrement du nom. Le nom d'hôte doit être un nom de domaine complet (FQDN) en minuscules, et les noms sous elido.me ou elido.app sont réservés.

Étape 2 : ajouter le domaine dans Elido

Ouvrez Domains dans la barre latérale du tableau de bord, saisissez le nom d'hôte et cliquez sur Add domain. Cochez la case wildcard uniquement si vous voulez que tous les sous-domaines de ce nom fonctionnent, comme dans *.go.example.com. En général, ce n'est pas nécessaire. Elido affiche alors les deux enregistrements DNS, avec un bouton de copie à côté de chacun.

La page Domains du tableau de bord Elido avec un champ de nom d'hôte, une case wildcard, un bouton Add domain et un tableau listant un domaine avec son statut et ses clics sur 30 jours

La même étape via l'API, pour des scripts d'intégration ou des espaces de travail clients :

curl -X POST https://api.elido.app/v1/workspaces/{workspace_id}/domains \
  -H "Authorization: Bearer $ELIDO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hostname": "go.example.com", "is_wildcard": false}'

L'appel exige un rôle autorisé à gérer les domaines. Un nouveau domaine revient avec le statut pending, un verify_token et un objet instructions contenant les valeurs exactes des enregistrements :

{
  "domain": {
    "id": 42,
    "hostname": "go.example.com",
    "status": "pending",
    "is_wildcard": false
  },
  "instructions": {
    "txt_record": "_elido-verify.go.example.com TXT \"verify=<token>\"",
    "cname_record": "go.example.com CNAME edge.elido.me"
  }
}

Les domaines personnalisés exigent une offre payante. Essayez d'en enregistrer un sur un espace de travail Free, au-delà du nombre de domaines de votre offre, ou sur un abonnement suspendu ou résilié, et l'API répond 402. C'est le code que je gérerais en premier dans tout script d'onboarding, car c'est celui qu'un client rencontre dès le premier jour. Un nom d'hôte en double reçoit 409. Les agences qui gèrent de nombreux domaines clients liront la page solutions pour agences pour le modèle d'espaces de travail.

Étape 3 : publier les deux enregistrements DNS

Ajoutez les deux enregistrements chez votre fournisseur DNS, exactement comme indiqué :

go.example.com                  CNAME  edge.elido.me.
_elido-verify.go.example.com    TXT    "verify=<your-token>"

Le CNAME achemine le trafic vers Elido. L'enregistrement TXT prouve que vous possédez la zone. Les deux sont requis, et la valeur TXT doit correspondre exactement au token.

Pour un enregistrement wildcard, le CNAME devient *.go.example.com, tandis que l'enregistrement TXT reste à _elido-verify.go.example.com, sur le nom parent sans l'astérisque.

Fixez un TTL de 300 secondes sur les deux enregistrements si votre fournisseur le permet. Beaucoup de zones ont 3600 secondes par défaut, et un TTL long transforme un travail de cinq minutes en une heure.

Une remarque sur les fournisseurs compte plus que les autres. Si vous utilisez Cloudflare, laissez le CNAME en DNS seul (DNS-only). La documentation de Cloudflare indique qu'un enregistrement proxifié reçoit en réponse les propres adresses IP de Cloudflare au lieu du contenu de l'enregistrement (consultée le 2026-10-09). Un nom proxifié ne renvoie donc jamais le CNAME qu'Elido cherche, et la vérification ne passera pas.

Étape 4 : attendre la vérification

Vous n'avez rien à cliquer. Un worker en arrière-plan dans l'API d'Elido vérifie chaque domaine en attente selon une minuterie, 30 secondes par défaut, en utilisant le résolveur public de Google à 8.8.8.8. Il ne valide le domaine que si les deux conditions sont réunies :

  1. L'enregistrement TXT à _elido-verify.<hostname> contient exactement verify=<token>.
  2. Le nom d'hôte a un CNAME qui se résout vers la cible edge d'Elido.

Quand les deux passent, le statut devient verified. Interrogez-le vous-même si vous scriptez la configuration :

curl https://api.elido.app/v1/workspaces/{workspace_id}/domains/42 \
  -H "Authorization: Bearer $ELIDO_API_TOKEN"

Pour sauter l'attente du prochain cycle, envoyez POST .../domains/42/verify. Il renvoie 202 et place le domaine en tête de la file. Un domaine qui reste en attente pendant 24 heures est marqué failed avec le motif « verification timeout », et le même appel verify remet un domaine en échec à l'état pending pour que vous puissiez réessayer après avoir corrigé le DNS.

Si cela cale, interrogez les enregistrements comme le fait le vérificateur :

dig @8.8.8.8 TXT _elido-verify.go.example.com +short
dig @8.8.8.8 CNAME go.example.com +short

Le premier doit afficher "verify=<your-token>". Le second doit afficher edge.elido.me., point final compris.

Étape 5 : la première requête émet le certificat

Dès que le statut est verified, il ne vous reste rien à faire. Elido n'émet pas de certificats à l'avance. La couche TLS en émet un à la demande, la première fois qu'un navigateur ouvre une connexion TLS pour votre nom d'hôte.

Avant de demander quoi que ce soit à Let's Encrypt, l'edge appelle un contrôle d'autorisation sur l'API d'Elido. La réponse n'est oui que si le nom d'hôte est à l'état verified ou active, ou s'il relève d'un enregistrement wildcard vérifié. Toute autre réponse, y compris pour un nom inconnu, refuse le handshake et aucun certificat n'est demandé. Cette barrière empêche un inconnu de pointer un million de noms d'hôte vers Elido et d'épuiser les limites de débit de l'autorité de certification.

Quand le contrôle passe, l'émission utilise le challenge HTTP-01 de la RFC 8555 : l'autorité de certification demande un jeton à /.well-known/acme-challenge/ sur votre nom d'hôte en HTTP simple, l'edge y répond, et le certificat est émis puis mis en cache. Le premier visiteur patiente un instant. Les requêtes suivantes réutilisent le certificat en cache.

Au premier handshake TLS, l'edge interroge une barrière d'autorisation ; un 404 interrompt l'émission, tandis qu'un 200 pour un domaine vérifié mène au challenge HTTP-01 de Let's Encrypt puis à un certificat mis en cache.

Une bonne habitude : ouvrez vous-même https://go.example.com juste après la vérification, pour que le certificat existe avant qu'un client ou un scan de QR code soit la première requête.

Passez l'id du domaine comme domain_id lorsque vous créez un lien. Le lien est en ligne à https://go.example.com/<slug> immédiatement. La page Domains affiche aussi les clics sur 30 jours par nom d'hôte. La référence complète, y compris les conseils sur CAA, se trouve dans le guide des domaines personnalisés, et la présentation du produit sur la page de la fonctionnalité domaines personnalisés.

Ce que signifient les valeurs de statut

StatutSignificationQue faire
pendingDomaine enregistré, DNS pas encore vuVérifier le TXT et le CNAME avec dig
verifiedLes deux enregistrements trouvés, les certificats peuvent être émisOuvrir l'URL HTTPS une fois, puis créer des liens
failedNon vérifié sous 24 heures, le motif figure sur la ligneCorriger le DNS, puis rappeler le point d'accès verify
activeAccepté par la barrière comme verifiedRien ; le traiter comme verified

Dans la version actuelle, un domaine sain reste à verified. La valeur active existe dans le modèle de données et dans le filtre du tableau de bord, et la barrière de certificat accepte les deux, mais rien n'y fait passer un domaine pour l'instant.

Pièges courants

Des enregistrements CAA qui excluent Let's Encrypt. Un enregistrement CAA limite les autorités autorisées à émettre pour un nom, et il est hérité par les sous-domaines (consulté le 2026-10-09). Si votre zone contient example.com CAA 0 issue "digicert.com", l'émission pour go.example.com est refusée. Ajoutez go.example.com CAA 0 issue "letsencrypt.org" ou élargissez l'enregistrement de l'apex.

Un proxy ou un CDN devant le CNAME. Le nuage orange de Cloudflare est le cas habituel, traité à l'étape 3. Toute couche qui répond au DNS ou au HTTP en votre nom casse à la fois la vérification du CNAME et le challenge HTTP-01.

Les wildcards ne sont pas des certificats wildcard. Selon la documentation des challenges de Let's Encrypt, HTTP-01 ne peut pas émettre de certificats wildcard, et DNS-01 exige un accès en écriture à votre zone (consultée le 2026-10-09). Un enregistrement wildcard couvre donc le routage de chaque sous-domaine, mais client1.go.example.com et client2.go.example.com reçoivent chacun leur propre certificat à la première utilisation. Let's Encrypt limite les nouveaux certificats par domaine enregistré à 50 tous les 7 jours (consulté le 2026-10-09) : intégrer des centaines de nouveaux sous-domaines en une semaine demande donc de la planification.

Supprimer le CNAME plus tard. Aujourd'hui, la vérification DNS ne s'exécute que tant qu'un domaine est en attente. Une fois un domaine vérifié, Elido ne le revérifie pas : un CNAME supprimé se manifeste donc par des redirections et des renouvellements de certificat en échec, pas par un changement de statut ou une notification. Surveillez l'enregistrement de votre côté. Un contrôle de santé périodique avec un état dégradé et un délai de grâce est prévu, pas construit.


Marius Voß est DevRel + infrastructure edge chez Elido. Il est responsable du chemin de redirection et du flux des domaines personnalisés.

Voir aussi sur le blog

Questions fréquentes

Combien de temps faut-il pour configurer le TLS d'un domaine personnalisé ?

Ajouter le domaine prend une minute, publier les deux enregistrements DNS quelques minutes de plus, puis il faut attendre la propagation du DNS. Elido vérifie les domaines en attente toutes les 30 secondes par défaut : la vérification aboutit donc peu après que vos enregistrements deviennent visibles. Avec un TTL de 300 secondes, cela prend généralement quelques minutes ; avec un TTL de 3600 secondes, cela peut être plus long. Le certificat est émis à la première requête HTTPS vers le nom d'hôte vérifié, pas avant.

De quels enregistrements DNS Elido a-t-il besoin pour un domaine personnalisé ?

Deux. Un enregistrement TXT à _elido-verify.<votre nom d'hôte> avec la valeur verify=<token> prouve que vous contrôlez la zone, et un CNAME de votre nom d'hôte vers la cible edge d'Elido achemine le trafic. Elido affiche les deux valeurs exactes dès que vous ajoutez le domaine, dans le tableau de bord et dans la réponse de l'API, et les deux doivent être présentes avant que le domaine soit vérifié.

Puis-je utiliser un domaine racine comme example.com pour mes liens courts ?

Pas de façon fiable. Le standard DNS n'autorise pas de CNAME à l'apex de la zone, et la vérification d'Elido cherche une vraie réponse CNAME : un enregistrement aplati ou ALIAS qui ne renvoie que des adresses IP ne passera donc pas. Utilisez un sous-domaine comme go.example.com ou links.example.com. Il est aussi plus court à saisir dans chaque lien que vous partagez.

Elido émet-il un certificat wildcard pour mon domaine ?

Non. L'enregistrement d'un domaine wildcard permet de servir chaque sous-domaine sous votre nom, mais chaque nom d'hôte reçoit son propre certificat à sa première requête via le challenge HTTP-01. Let's Encrypt n'émet des certificats wildcard que via le challenge DNS-01, qui exige un accès en écriture à votre zone DNS, et Elido n'a pas cet accès. Pour les visiteurs, le résultat est le même.

Pourquoi mon domaine reste-t-il au statut pending ?

Soit la valeur TXT ne correspond pas exactement au token, soit le CNAME ne se résout pas vers la cible edge d'Elido, soit un proxy répond à la place de votre CNAME. Elido interroge les deux enregistrements via un résolveur public : vérifiez-les donc avec dig depuis l'extérieur de votre réseau. Un domaine encore en attente après 24 heures est marqué failed avec un motif, et vous pouvez ensuite demander une nouvelle vérification.

Les domaines personnalisés fonctionnent-ils sur toutes les offres Elido ?

Non. Les espaces de travail Free n'ont aucun domaine personnalisé inclus. Les offres payantes Pro et Business incluent des domaines personnalisés, et le nombre que vous pouvez rattacher dépend de la taille de l'offre : consultez la page des tarifs pour votre niveau. Ajouter un domaine au-delà de votre limite, ou sur un abonnement suspendu ou résilié, est refusé avec une erreur de paiement requis.

Essayer Elido

Collez une URL, obtenez un lien court

Sans inscription. Lien actif 30 jours. Inscrivez-vous pour le garder pour toujours.

Sans inscription. Créez un compte gratuit pour 50 liens par mois.

Essayer Elido

Raccourcisseur d'URL hébergé en UE : domaines personnalisés, analyses approfondies et API ouverte. Forfait gratuit - sans carte bancaire.

Tags
custom domain tls
branded short links setup
short url https
custom domain url shortener
on-demand tls
dns cname short link

Lire la suite