
Werkzeug zum Abrufen/Aktualisieren von DNS-Root-Zone-Vertrauensankern
Dieses Tool ruft den aktuellen DNSSEC-Root-Vertrauensanker von IANA ab, validiert ihn kryptografisch und schreibt den Root-KSK (Key Signing Key) als DNSKEY- und DS- Records aus.
Es erfordert Python 3.10+ und das OpenSSL-Kommandozeilenwerkzeug. Es gibt keine weiteren Abhängigkeiten.
Die Signaturvalidierung verwendet ein im Tool selbst eingebettetes CA-Zertifikat, sodass die Vertrauensanker unabhängig davon, ob die HTTPS-Zertifikatsprüfung erfolgreich ist, kryptografisch verifiziert werden.
Aus dem Repository installieren:
pip install .
Dies stellt einen Befehl get-trust-anchor bereit.
Den installierten Befehl ausführen:
get-trust-anchor
Oder als Python-Modul aufrufen:
python -m get_trust_anchor
| Option | Beschreibung |
|---|---|
--local FILE | Eine lokale Vertrauensanker-XML-Datei verwenden, anstatt von IANA abzurufen |
--local-sig FILE | Eine lokale Signaturdatei verwenden, anstatt von IANA abzurufen |
--root-ca FILE | Ein benutzerdefiniertes Root-CA-Zertifikat anstelle des eingebauten verwenden |
--no-validation | Signaturvalidierung überspringen |
--ksks-from-trust-anchor | KSKs direkt aus dem Vertrauensanker-XML extrahieren, anstatt sie per DNS abzurufen |
--keep | Temporäre Dateien (XML und Signatur) nach der Ausführung behalten |
--print-dnskey | DNSKEY-Records auf stdout ausgeben, anstatt Dateien zu schreiben |
--print-ds | DS-Records auf stdout ausgeben, anstatt Dateien zu schreiben |
--version | Die Version des Tools ausgeben und beenden |
Standardmäßig schreibt das Tool zwei Dateien in das aktuelle Verzeichnis:
ksk-as-dnskey.txt -- Root-KSKs als DNSKEY-Recordsksk-as-ds.txt -- Root-KSKs als DS-RecordsVerwenden Sie --print-dnskey oder --print-ds, um Records stattdessen
auf stdout auszugeben, geeignet für Piping:
get-trust-anchor --print-ds | grep "^. IN DS"
Mit Entwicklungsabhängigkeiten installieren:
pip install -e ".[dev]"
Die Tests ausführen:
pytest
Formatierung, Lint und Typen prüfen:
ruff format --check .
ruff check .
ty check
Um eine neue Version auf GitHub zu veröffentlichen, erhöhen Sie version in
pyproject.toml, committen Sie die Änderung und pushen Sie dann ein passendes Tag:
git tag v1.0.0
git push origin v1.0.0
Das Pushen eines v*-Tags löst den Release-Workflow aus,
der das sdist/wheel baut und ein GitHub-Release mit diesen angehängt veröffentlicht.
BSD 2-Clause. Siehe LICENSE für Details.