Trouver les sous-domaines d'un domaine

Listez les noms d'hôtes d'un domaine qui apparaissent dans les journaux publics Certificate Transparency : un inventaire rapide de ce qui a reçu un certificat TLS.

D'où vient la liste

Chaque certificat TLS publiquement reconnu est consigné dans les journaux Certificate Transparency, des registres ouverts, en ajout seul, exigés par les navigateurs. Les noms d'hôtes contenus dans chaque certificat sont donc publics. OrbitProbe interroge ces journaux via crt.sh et rassemble les noms qui relèvent du domaine saisi.

La liste est ainsi un relevé de certificats, pas du DNS. Un nom peut y figurer et ne plus exister ; un nom qui n'a jamais utilisé qu'un certificat wildcard, ou aucun, en sera absent. Les entrées wildcard comme *.example.com sont affichées à part, car elles couvrent des noms sans les révéler.

À quoi cela sert

Les titulaires s'en servent pour retrouver des hôtes oubliés : le site de préproduction d'il y a trois ans, un système de test monté par un prestataire, un certificat émis par quelqu'un qui n'aurait pas dû pouvoir le faire. C'est aussi le moyen le plus rapide de constater que les certificats sont publics, ce qui est une raison de ne pas mettre de secrets dans les noms d'hôtes.

Pour vos propres domaines, faites suivre chaque nom inconnu d'une recherche DNS pour voir s'il résout encore. Utilisez l'outil sur des domaines dont vous êtes responsable ou que vous êtes autorisé à évaluer.

Comment utiliser cet outil

  1. Saisissez le domaine. Saisissez ou collez un nom de domaine comme example.com. Une URL complète convient aussi : le schéma, le chemin et un www initial sont retirés.
  2. Cherchez dans les journaux de certificats. L'outil demande aux journaux publics Certificate Transparency les certificats émis sous le domaine.
  3. Examinez les noms. Les noms d'hôte trouvés dans les certificats sont listés avec la date du certificat le plus récent. La liste n'est pas complète : les noms sans certificat public n'y figurent pas.

Équivalent en ligne de commande

La même vérification depuis un terminal. Les commandes utilisent example.com : remplacez-le par votre propre nom.

  • Noms d'après crt.sh (nécessite jq)curl -s "https://crt.sh/?q=%25.example.com&output=json" | jq -r ".[].name_value" | sort -u

Questions fréquentes

Comment trouver tous les sous-domaines d'un domaine ?

Il n'existe pas de liste publique complète : le DNS ne permet pas l'énumération. Les journaux Certificate Transparency sont la meilleure source ouverte et montrent chaque nom qui a eu un certificat public.

Pourquoi un sous-domaine que je connais est-il absent ?

Il n'a probablement jamais eu son propre certificat public : il utilise peut-être un certificat wildcard, du HTTP en clair ou une autorité de certification interne.

Un sous-domaine listé existe-t-il encore ?

Pas nécessairement. Le journal conserve les certificats pour toujours. Lancez une recherche DNS sur le nom pour voir s'il résout aujourd'hui.

Puis-je tenir mes sous-domaines à l'écart de ces journaux ?

Pas s'ils utilisent des certificats publiquement reconnus. Un certificat wildcard masque les noms individuels ; une autorité de certification interne évite les journaux, mais n'est reconnue que par les appareils que vous gérez.

Pourquoi la recherche a-t-elle échoué ou expiré ?

Le service de recherche dans les journaux est partagé et parfois lent, surtout pour les domaines qui ont beaucoup de certificats. Une recherche en échec est signalée comme un échec, jamais comme « aucun sous-domaine ». Réessayez dans une minute.