
Инструмент для получения/обновления доверенных якорей корневой зоны DNS
Этот инструмент получает текущий корневой доверенный якорь DNSSEC от IANA, криптографически проверяет его и выводит корневой KSK (Key Signing Key) в виде записей DNSKEY и DS.
Требуется Python 3.10+ и утилита командной строки OpenSSL. Других зависимостей нет.
Проверка подписи использует сертификат CA, встроенный в сам инструмент, поэтому доверенные якоря криптографически проверяются независимо от того, успешна ли проверка сертификата HTTPS.
Установка из репозитория:
pip install .
Это предоставляет команду get-trust-anchor.
Запустите установленную команду:
get-trust-anchor
Или вызовите как модуль Python:
python -m get_trust_anchor
| Параметр | Описание |
|---|---|
--local FILE | Использовать локальный XML-файл доверенного якоря вместо загрузки от IANA |
--local-sig FILE | Использовать локальный файл подписи вместо загрузки от IANA |
--root-ca FILE | Использовать пользовательский сертификат корневого CA вместо встроенного |
--no-validation | Пропустить проверку подписи |
--ksks-from-trust-anchor | Извлекать KSK напрямую из XML доверенного якоря вместо получения из DNS |
--keep | Сохранять временные файлы (XML и подпись) после запуска |
--print-dnskey | Выводить записи DNSKEY в stdout вместо записи в файлы |
--print-ds | Выводить записи DS в stdout вместо записи в файлы |
--version | Вывести версию инструмента и завершить работу |
По умолчанию инструмент записывает два файла в текущий каталог:
ksk-as-dnskey.txt -- корневые KSK в виде записей DNSKEYksk-as-ds.txt -- корневые KSK в виде записей DSИспользуйте --print-dnskey или --print-ds, чтобы вместо этого выводить записи в stdout,
что удобно для передачи через конвейер:
get-trust-anchor --print-ds | grep "^. IN DS"
Установка с зависимостями для разработки:
pip install -e ".[dev]"
Запуск тестов:
pytest
Проверка форматирования, линтинга и типов:
ruff format --check .
ruff check .
ty check
Чтобы опубликовать новую версию на GitHub, измените version в
pyproject.toml, зафиксируйте изменение, затем отправьте соответствующий тег:
git tag v1.0.0
git push origin v1.0.0
Отправка тега v* запускает рабочий процесс выпуска,
который собирает sdist/wheel и публикует GitHub Release с прикреплёнными к нему файлами.
BSD 2-Clause. Подробности см. в LICENSE.