Idea utworzenia pliku security.txt bazuje na dwóch zwyczajach:
Funckjonalność adresu <security@domena.tld>
Skorzystanie z analogii do robots.txt
Zawartość pliku
Pliki security.txt powienien zawierać dane kontaktowe (wymagane), ścieżka do klucza pgp/gnupg, linki do podziękowań, obsługiwane języki, etc. Wszystko jest opisane w RFC[ 1 ].
Przykładowy plik może wyglądać następująco:
----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 # Canonical URL Canonical: https://example.com/.well-known/security.txt # Our security address Contact: mailto:security@example.com # Our OpenPGP key Encryption: https://example.com/pgp-key.txt # Our security policy Policy: https://example.com/security-policy.html # Our security acknowledgments page Acknowledgments: https://example.com/hall-of-fame.html Expires: 2025-03-31T23:59:17z -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 [signature] -----END PGP SIGNATURE-----
Jak widać, plik może być podpisany (preferowane). Ale oczywiście może być również w wersji nie podpisanej.
Konfiguracja nginx
location /security.txt {
return $scheme://$server_name/.well-known/security.txt;
}
location /.well-known/security.txt {
alias /var/www/htdocs/virtuals/administrivia/data/security.txt;
}
Powyższa konfiguracja została zapisana w repozytorium skryptów oraz konfiguracji jako 000-security-txt.conf i można ją dołączać do konfiguracji wirtualnych hostów.
Utworzenie katalogów w systemie
Należy pamiętać, o utworzeniu katalogów w systemie, aby móc utworzyć wspólny plik dla wielu hostów wirtualnych:
mkdir -p /var/www/htdocs/virtuals/administrivia/data/
touch /var/www/htdocs/virtuals/administrivia/data/security.txt
Zawartość pliku dla BSD Serwis
Contact: mailto: security@bsdserwis.com Encryption: https://www.bsdserwis.com/bsdserwis.pub.asc Preferred-Languages: pl, en Expires: 2025-03-31T23:59:17z
Podpisanie pliku
Posiadając plik niepodpisany, generujemy podpisany plik security.txt:
gpg --sign --yes --armor --clear-sign --no-verbose --textmode --output /var/www/htdocs/virtuals/administrivia/data/security.txt /var/www/htdocs/virtuals/administrivia/_security-unsigned.txt