Vérifier un fichier security.txt

Récupérez /.well-known/security.txt sur un site et contrôlez-le selon la RFC 9116 : champs obligatoires, date d'expiration, HTTPS, et si le fichier est signé.

À quoi sert security.txt

Quand quelqu'un trouve une vulnérabilité sur votre site, le plus difficile est souvent de savoir à qui le dire. security.txt (RFC 9116) est un court fichier texte placé sous /.well-known/security.txt qui répond à cette question : une ligne Contact avec une adresse e-mail ou une page de signalement, et une ligne Expires qui dit jusqu'à quand on peut se fier à ces informations. Les deux sont obligatoires. Des champs facultatifs ajoutent une clé de chiffrement, la politique de divulgation, les langues préférées, l'URL canonique du fichier, un lien vers les remerciements et les offres d'emploi en sécurité.

Ce que vérifie cet outil

Il demande https://<domain>/.well-known/security.txt et, s'il n'y est pas, l'ancien emplacement /security.txt. Il suit quelques redirections et indique l'URL finale. Il analyse ensuite les champs et signale ce que demande la RFC 9116 : un Contact ou un Expires absent, plusieurs Expires, une date qui n'est pas au format requis, une date passée, une date à plus d'un an, un fichier servi en HTTP en clair ou avec un certificat non valide, des liens en http:, un champ Canonical qui ne correspond pas à l'URL où le fichier a été trouvé, et si le fichier porte une signature OpenPGP en clair.

De nombreux sites répondent à tout chemin inconnu par leur page d'accueil avec le statut 200. Une réponse HTML est donc traitée comme « introuvable », pas comme un security.txt défectueux. Et si la requête échoue, le résultat est « n'a pas pu être vérifié » : l'outil ne déclare jamais un fichier absent à cause d'un délai dépassé.

Garder le fichier utile

Un fichier expiré est le constat le plus fréquent, car Expires est obligatoire et facile à oublier. Fixez-le à moins d'un an et inscrivez le renouvellement dans le même calendrier que vos certificats et vos domaines. Utilisez une adresse qui atteint des personnes capables d'agir, pas une boîte personnelle, et signez le fichier si vous voulez que les personnes qui signalent puissent le vérifier.

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. Récupérez le fichier. L'outil demande /.well-known/security.txt en HTTPS et se rabat sur /security.txt.
  3. Examinez les constats. L'absence de Contact ou d'Expires, une date expirée, le HTTP en clair et l'état de la signature sont listés, avec chaque champ trouvé.

Équivalent en ligne de commande

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

  • Le fichier lui-mêmecurl -sL https://example.com/.well-known/security.txt
  • Code de statut et type de contenucurl -sIL https://example.com/.well-known/security.txt | grep -iE "^HTTP|^content-type"
  • Vérifier la signature d'un fichier signécurl -sL https://example.com/.well-known/security.txt | gpg --verify

Questions fréquentes

Où placer security.txt ?

Sous https://example.com/.well-known/security.txt, servi en HTTPS en text/plain. Le /security.txt à la racine est un ancien emplacement ; si vous l'utilisez, redirigez-le vers le chemin well-known.

Quels champs sont obligatoires ?

Contact (au moins un) et Expires (exactement un, au format 2027-01-31T23:59:59Z). Tout le reste est facultatif.

security.txt rend-il mon site plus sûr ?

Non. Il permet de vous joindre plus facilement quand quelqu'un trouve un problème, ce qui raccourcit la durée pendant laquelle une vulnérabilité reste ouverte. Il ne dit rien de la sécurité du site.

Faut-il signer le fichier ?

La RFC 9116 recommande une signature OpenPGP en clair, pour que la personne qui signale puisse savoir que le fichier n'a pas été déposé par un attaquant. L'outil indique si un bloc de signature est présent ; il ne vérifie pas la signature.

L'outil indique « introuvable », mais je vois une page dans mon navigateur. Pourquoi ?

Votre serveur répond probablement aux chemins inconnus par une page HTML avec le statut 200. Ce n'est pas un fichier security.txt ; il est donc signalé comme introuvable.