WebCheck

security.txt anlegen: der Sicherheitskontakt nach RFC 9116

Findet jemand eine Lücke auf Deiner Website, muss er erst herausfinden, wem er sie melden kann. Eine kleine Textdatei an einem festen Ort nimmt ihm diese Suche ab, solange jemand sie aktuell hält.

Stand: 05.11.2026

Ein fester Ort für Meldungen

Wer auf eine Sicherheitslücke stößt, landet ohne festen Kontakt beim Impressum, beim allgemeinen Kundenpostfach oder im Kontaktformular. Einen Hinweis auf eine offene Datenbank liest dort vielleicht der Vertrieb, oder er geht im Spam unter. Mancher Finder gibt nach dem zweiten Versuch auf.

RFC 9116 bestimmt deshalb einen festen Ort: https://beispiel.de/.well-known/security.txt. Die Datei ist reiner Text (text/plain, UTF-8) und muss über HTTPS erreichbar sein. Sie gilt nur für genau den Host, unter dem sie liegt. shop.beispiel.de braucht also eine eigene. Die alte Ablage direkt unter /security.txt ist nur noch aus Kompatibilitätsgründen erlaubt; gibt es beide, zählt die unter /.well-known/.

Im August 2026 haben das BSI und die Allianz für Cyber-Sicherheit Website-Betreiber ausdrücklich aufgerufen, die Datei anzulegen. Nach Messungen des BSI hatten zu diesem Zeitpunkt nur 1,8 Prozent der Websites in Deutschland eine. Das BSI scannt im Projekt Cyberdome selbst Websites und schickt Funde direkt an den hinterlegten Kontakt.

Die beiden Pflichtfelder

Feld Bedeutung
Contact: wohin Meldungen gehen, als URI: mailto:, https: oder tel:; darf mehrfach vorkommen, der erste Eintrag ist der bevorzugte
Expires: Datum und Uhrzeit, ab dem die Angaben als veraltet gelten; genau einmal, im Format nach RFC 3339

Pflicht ist das Feld, weil ein Kontakt von vor drei Jahren womöglich zu einer längst gelöschten Adresse führt. Wer die Datei liest, soll eine abgelaufene deshalb als überholt behandeln. RFC 9116 empfiehlt, Expires weniger als ein Jahr in die Zukunft zu legen.

Optionale Felder

Feld Inhalt
Encryption: Link auf Deinen öffentlichen OpenPGP-Schlüssel, nie der Schlüssel selbst
Policy: Link auf Deine Richtlinie zum Umgang mit Meldungen
Acknowledgments: Link auf eine Danke-Seite für Finder
Preferred-Languages: Sprachen für Meldungen, etwa de, en; ohne Angabe gilt Englisch
Canonical: die Adresse oder Adressen, unter denen die Datei offiziell liegt
Hiring: Stellenangebote im Sicherheitsbereich
CSAF: Verweis auf provider-metadata.json, wenn Du Sicherheitshinweise im CSAF-Format veröffentlichst; nicht Teil von RFC 9116, aber bei securitytxt.org aufgeführt

Alle Links müssen mit https:// beginnen. Zeilen mit # am Anfang sind Kommentare.

Die RFC empfiehlt, die Datei mit einer OpenPGP-Klartextsignatur zu versehen. Zusammen mit Canonical kann ein Finder dann prüfen, dass die Datei von Dir stammt und an ihrem Platz liegt. Für eine kleine Firma ohne gepflegten PGP-Schlüssel ist das kein Muss.

Eine vollständige Datei

# Sicherheitskontakt für beispiel.de
Contact: mailto:sicherheit@beispiel.de
Contact: https://beispiel.de/sicherheit/melden
Expires: 2027-10-31T23:00:00Z
Encryption: https://beispiel.de/.well-known/pgp-key.asc
Preferred-Languages: de, en
Canonical: https://beispiel.de/.well-known/security.txt
Policy: https://beispiel.de/sicherheit/richtlinie
Acknowledgments: https://beispiel.de/sicherheit/danke

Schreib das Z am Ende der Uhrzeit groß. Die RFC erlaubt zwar auch ein kleines, aber nicht jedes Werkzeug liest es.

Worauf es im Alltag ankommt

  • Trag eine Rollenadresse ein. sicherheit@beispiel.de übersteht Urlaub und Kündigung, m.mueller@beispiel.de nicht.
  • Expires läuft ab, ob Du daran denkst oder nicht. Ein Kalendereintrag zwei Monate vorher genügt; bequemer ist ein Deployment, das die Datei jedes Mal mit frischem Datum erzeugt.
  • Ein Kontakt, den niemand liest, ist schlimmer als keiner. Der Finder wartet, hält still und veröffentlicht am Ende womöglich ohne Deine Antwort. Leg fest, wer das Postfach betreut und bis wann eine erste Rückmeldung rausgeht.
  • Mit Policy verlinkst Du eine kurze Richtlinie: welche Systeme gemeint sind, was Finder tun dürfen, wann Du Dich meldest. Die Datei allein erlaubt niemandem, Deine Systeme zu testen. Das stellt RFC 9116 ausdrücklich klar.
  • Manche CMS liefern für jeden unbekannten Pfad eine HTML-Seite mit Status 200 aus. Ruf die Adresse einmal mit curl -I auf und schau, ob text/plain zurückkommt.

security.txt prüfen

Für diesen Punkt ruft ZwoWebCheck eine Adresse zusätzlich ab: /.well-known/security.txt auf dem Host, den Du eingegeben hast, und nur über HTTPS. Einer Weiterleitung folgt die Prüfung einmal, wenn sie per HTTPS auf derselben Domain bleibt, etwa von beispiel.de auf www.beispiel.de. Die Datei zählt, wenn sie als Text mit mindestens einer Contact-Zeile ankommt. Der Bericht nennt den ersten Kontakt und das Ablaufdatum. Ist das Datum vorbei, gibt es eine Warnung; fehlt Expires oder die ganze Datei, einen Hinweis mit dem, was mindestens hineingehört.