
DNSルートゾーンのトラストアンカーを取得/更新するためのツール
このツールは、IANA から現在の DNSSEC ルートトラストアンカーを取得し、暗号学的に検証したうえで、ルート 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 | IANA から取得する代わりに、ローカルのトラストアンカー XML ファイルを使用する |
--local-sig FILE | IANA から取得する代わりに、ローカルの署名ファイルを使用する |
--root-ca FILE | 組み込みのものではなく、カスタムのルート CA 証明書を使用する |
--no-validation | 署名の検証をスキップする |
--ksks-from-trust-anchor | DNS から取得する代わりに、トラストアンカー XML から直接 KSK を抽出する |
--keep | 実行後も一時ファイル (XML および署名) を保持する |
--print-dnskey | ファイルに書き出す代わりに、DNSKEY レコードを標準出力に出力する |
--print-ds | ファイルに書き出す代わりに、DS レコードを標準出力に出力する |
--version | ツールのバージョンを出力して終了する |
デフォルトでは、ツールはカレントディレクトリに 2 つのファイルを書き出します:
ksk-as-dnskey.txt -- DNSKEY レコードとしてのルート KSKksk-as-ds.txt -- DS レコードとしてのルート KSK代わりに --print-dnskey または --print-ds を使用すると、レコードを標準出力に出力でき、パイプ処理に適しています:
get-trust-anchor --print-ds | grep "^. IN DS"
開発用依存関係を含めてインストールします:
pip install -e ".[dev]"
テストを実行します:
pytest
フォーマット、リント、型をチェックします:
ruff format --check .
ruff check .
ty check
GitHub で新しいバージョンを公開するには、pyproject.toml の version を更新してコミットし、対応するタグをプッシュします:
git tag v1.0.0
git push origin v1.0.0
v* タグをプッシュすると リリースワークフロー がトリガーされ、sdist/wheel をビルドして、それらを添付した GitHub Release を公開します。
BSD 2-Clause。詳細は LICENSE を参照してください。