Placer un fichier security.txt sur votre site web
Si quelqu'un découvre une faille de sécurité sur votre site web, par exemple un dossier ouvert ou une extension obsolète, vous souhaitez que cette personne puisse vous prévenir. C'est le rôle de security.txt : un petit fichier texte placé à un emplacement fixe de votre site web, qui indique l'adresse à laquelle envoyer ces signalements. Il est défini dans la norme internet RFC 9116. Vous découvrirez ici ce qu'il contient et comment le mettre en place.
L'emplacement
Le fichier se trouve à l'adresse https://example.com/.well-known/security.txt. L'ancien emplacement /security.txt à la racine est autorisé en complément, mais si le fichier existe aux deux endroits, c'est celui de /.well-known/ qui fait foi. Il doit être accessible en https et être envoyé en texte brut (text/plain).
Le fichier ne s'applique qu'au nom sur lequel il se trouve. Un security.txt sur example.com ne s'applique donc pas automatiquement à shop.example.com. Si un sous-domaine possède son propre site web, placez-y également un security.txt.
Ce qu'il contient
Contact: mailto:security@example.com Expires: 2027-10-31T23:00:00Z Preferred-Languages: nl, en Canonical: https://example.com/.well-known/security.txt
| Champ | Obligatoire ? | Signification |
|---|---|---|
Contact | Oui | L'endroit où envoyer les signalements : une adresse mailto:, un numéro tel: ou une page web commençant par https://. Vous pouvez en indiquer plusieurs les uns sous les autres, le premier étant votre préférence. |
Expires | Oui, exactement une fois | La date et l'heure après lesquelles le fichier est considéré comme obsolète, par exemple 2027-10-31T23:00:00Z. La norme recommande une date située moins d'un an dans le futur. |
Preferred-Languages | Non | Les langues dans lesquelles vous souhaitez recevoir les signalements. |
Canonical | Non | L'adresse du fichier lui-même. |
Policy | Non | Un lien vers une page décrivant votre politique de signalement : ce que vous faites d'un signalement et ce que vous attendez de la personne qui le fait. |
Encryption | Non | Un lien vers votre clé publique, si les personnes qui signalent une faille peuvent vous écrire de manière chiffrée. |
Pour Contact, utilisez une adresse réellement consultée. Une boîte mail oubliée est pire que l'absence de security.txt : la personne qui signale pense que vous avez été prévenu. La signature numérique (OpenPGP) est autorisée, mais n'est pas obligatoire.
Mise en place sur votre hébergement
- Dans DirectAdmin, ouvrez le Gestionnaire de fichiers et rendez-vous dans
domains/example.com/public_html. Consultez Ouvrir le gestionnaire de fichiers : les dossiers de votre hébergement. - Si le dossier
.well-knownn'existe pas encore, créez-le. Les dossiers dont le nom commence par un point ne sont visibles que si vous affichez les fichiers cachés : consultez Afficher et modifier les fichiers cachés comme .htaccess. - Dans ce dossier, créez un nouveau fichier
security.txt, collez-y vos lignes et enregistrez. - Ouvrez
https://example.com/.well-known/security.txtdans votre navigateur. Votre texte doit s'afficher.
Si vous utilisez WordPress ou un autre CMS, rien ne change : un fichier qui existe réellement est simplement envoyé par le serveur web.
Mise en place sur un VPS
Sur un VPS, placez le fichier dans le dossier web de votre site, par exemple /var/www/example.com/.well-known/security.txt. Faites attention à deux points :
- Si vous bloquez dans nginx tous les chemins commençant par un point, ajoutez d'abord une exception pour
/.well-known/. - Si une application tourne derrière un reverse proxy, faites pointer le chemin vers le fichier dans Caddy ou nginx.
Consultez Caddy : un site web avec https automatique et nginx avec un certificat Let's Encrypt.
Vérification
Affichez les en-têtes avec :
curl -sI https://example.com/.well-known/security.txt
Le statut doit être 200 et le type text/plain. Une erreur fréquente : un site qui répond à toute adresse inconnue en affichant la page d'accueil. Le fichier semble alors exister, mais c'est du HTML qui est renvoyé. Vérifiez donc aussi le contenu. Le test de site web de internet.nl vérifie également security.txt.
Mise à jour annuelle
Ajoutez dans votre agenda un rappel bien avant la date indiquée dans Expires. Vérifiez alors que l'adresse de contact est toujours correcte et repoussez la date. Si quelque chose change entre-temps, comme une nouvelle adresse ou le départ d'une personne, modifiez immédiatement le fichier.
Pour aller plus loin
- RFC 9116: A File Format to Aid in Security Vulnerability Disclosure (en anglais)
- securitytxt.org, avec un outil pour créer le fichier (en anglais)
Envie d'en savoir plus ? Suivez le cours gratuit VPS et administration de serveurs Linux, leçon 7.4 Caddy, HSTS et security.txt ou leçon 10.4 Contrôle final : votre serveur passé au crible.
