
Herramienta para obtener/actualizar los anclajes de confianza de la zona raíz de DNS
Esta herramienta obtiene el anclaje de confianza raíz DNSSEC actual desde IANA, lo valida criptográficamente y escribe la KSK (Key Signing Key) raíz como registros DNSKEY y DS.
Requiere Python 3.10+ y la herramienta de línea de comandos OpenSSL. No hay otras dependencias.
La validación de la firma utiliza un certificado de CA integrado en la propia herramienta, por lo que los anclajes de confianza se verifican criptográficamente independientemente de si la comprobación del certificado HTTPS tiene éxito.
Instalar desde el repositorio:
pip install .
Esto proporciona un comando get-trust-anchor.
Ejecutar el comando instalado:
get-trust-anchor
O invocar como módulo de Python:
python -m get_trust_anchor
| Opción | Descripción |
|---|---|
--local FILE | Usar un archivo XML de anclaje de confianza local en lugar de obtenerlo de IANA |
--local-sig FILE | Usar un archivo de firma local en lugar de obtenerlo de IANA |
--root-ca FILE | Usar un certificado de CA raíz personalizado en lugar del integrado |
--no-validation | Omitir la validación de la firma |
--ksks-from-trust-anchor | Extraer las KSK directamente del XML del anclaje de confianza en lugar de obtenerlas de DNS |
--keep | Conservar los archivos temporales (XML y firma) después de la ejecución |
--print-dnskey | Imprimir los registros DNSKEY en stdout en lugar de escribir archivos |
--print-ds | Imprimir los registros DS en stdout en lugar de escribir archivos |
--version | Imprimir la versión de la herramienta y salir |
Por defecto, la herramienta escribe dos archivos en el directorio actual:
ksk-as-dnskey.txt -- KSK raíz como registros DNSKEYksk-as-ds.txt -- KSK raíz como registros DSUse --print-dnskey o --print-ds para imprimir los registros en stdout
en su lugar, adecuado para canalizar:
get-trust-anchor --print-ds | grep "^. IN DS"
Instalar con las dependencias de desarrollo:
pip install -e ".[dev]"
Ejecutar las pruebas:
pytest
Comprobar formato, lint y tipos:
ruff format --check .
ruff check .
ty check
Para publicar una nueva versión en GitHub, incremente version en
pyproject.toml, haga commit y luego suba una etiqueta coincidente:
git tag v1.0.0
git push origin v1.0.0
Subir una etiqueta v* activa el flujo de trabajo de publicación,
que compila el sdist/wheel y publica una GitHub Release con ellos adjuntos.
BSD 2-Clause. Consulte LICENSE para más detalles.