ldns-signzone(1)
π ldns-signzone β the DNSSEC glow-up machine π
okay bestie, so this is the manual page for ldns-signzone(1), a General Commands Manual situation. yes it's a whole program, yes it signs zones, and yes we're gonna read it together like it's a group chat. grab a strawberry π and let's go.
β¨ NAME β¨
ldns-signzone β sign a zonefile with DNSSEC data. that's it, that's the vibe. it takes your little zone and gives it the DNSSEC treatment. π
πΈ SYNOPSIS πΈ
ldns-signzone [ OPTIONS ] ZONEFILE KEY [KEY [KEY] ... ]
like. options, then the zonefile, then as many keys as your heart desires. slay.
π¦ DESCRIPTION π¦
ldns-signzone is the tool you use to generate a DNSSEC signed zone. when you run it, it makes you a brand new zonefile that's got RRSIG and NSEC(3) resource records all up in it, exactly as specified in RFC 4033, RFC 4034 and RFC 4035. no cap.
keys have to be specified by their base name β meaning without the .private part, okay? don't come in here typing the whole filename, that's not the move. so if the DNSKEY that belongs to the key in the .private file isn't already present in the zone, it gets read from the file <base name>.key. and if that file doesn't exist either? then the DNSKEY value gets generated from the private key. it literally just makes one for you. iconic behaviour fr fr.
you can specify multiple keys too, go off. Key Signing Keys are used as such when they're either already present in the zone, or they're specified in a .key file, and they have the SEP bit set. that's the whole rule, iykyk.
π OPTIONS π
-bβ augments the zone and the RR's with extra comment texts so the layout is way more readable and easier to debug.DSrecords get a bubblebabble version of the data in the comment text, andNSEC3records get the unhashed owner names in the comment text. cute and useful. and heads up: without this option, onlyDNSKEYRR's get their Key Tag annotated in the comment text. that's the default, bestie.-dβ do not addDNSKEYresource records for used keys to the signed zone. like, we're not doing that today.-edate β set the expiration date of the signatures to this date. the format can beYYYYMMDD[hhmmss], or a timestamp. both are fine, pick your fighter.-ffile β use this file to store the signed zone in. default is<originalfile>.signed. yes the default is literally your file's name with.signedglued on the end. π-idate β set the inception date of the signatures to this date. format can beYYYYMMDD[hhmmss], or a timestamp. same energy as-ebut for when the sig starts living.-oorigin β use this as the origin of the zone.-uβ set theSOAserial to the number of seconds since 1-1-1970. that's a Unix timestamp serial, and honestly? iconic.-vβ print the version and exit. that's all, bye π-z [scheme:]hashβ calculate the zone's digest and add those asZONEMDRRs. the (optional)schememust besimple(or1), andhashshould besha384(or1) orsha512(or2). this option can be given more than once, so stack them if you want. π₯-Zβ allowZONEMDs to be added without signing. no signature, just the digest. wild but okay.-Aβ sign theDNSKEYrecord with all keys. by default it's signed with a minimal number of keys, to keep the response size for theDNSKEYquery small, and only the SEP keys that are passed are used. if there are no SEP keys, theDNSKEYRRset is signed with the non-SEP keys. this option turns off the default and all keys are used to sign theDNSKEYRRset. it's giving "go big or go home".-Uβ sign with every unique algorithm in the provided keys. theDNSKEYset is signed with all the SEP keys, plus all the non-SEP keys that have an algorithm that was not present in the SEP key set. algorithm diversity queen. π-Ename β use the EVP cryptographic engine with the given name for signing. this can have some extra options; see ENGINE OPTIONS below for more info, bestie.-Kalgorithm-id,key-id β use the keykey-idas the signing key for algorithmalgorithm-idas a Key Signing Key (KSK). this option is used when you use an OpenSSL engine, see ENGINE OPTIONS for more information.-kalgorithm-id,key-id β use the keykey-idas the signing key for algorithmalgorithm-idas a Zone Signing Key (ZSK). this option is also used when you use an OpenSSL engine, see ENGINE OPTIONS for more information. (yes-Kis the KSK one and-kis the ZSK one, case matters, do not mix them up π)-nβ useNSEC3instead ofNSEC. choosing violence, choosing hashing.
π§ if you use NSEC3, you can specify the following extra options π§
-aalgorithm β algorithm used to create the hashedNSEC3owner names.-pβ Opt-out. allNSEC3records in the zone will have the Opt-out flag set. after signing, you can add insecure delegations to the signed zone. very much a "we'll deal with it later" move, but a legit one.-sstring β Salt. season your hashes, bestie. π§-tnumber β Number of hash iterations. it's the number, that's the whole thing.
π ENGINE OPTIONS π
you can modify the possible engines, if supported, by setting an OpenSSL configuration file. this is done through the environment variable OPENSSL_CONF. π
the key options (-k and -K) work as follows: you specify a DNSSEC algorithm β using its symbolic name, for instance, RSASHA256, or its numeric identifier, for instance, 8 β followed by a comma and a key identifier. and listen: white space is not allowed between the algorithm and the comma, and between the comma and the key identifier. do not put a space there. i'm serious. the parser will simply not have it. π
the key identifier can be any of the following:
<id>
<slot>:<id>
id_<id>
slot_<slot>-id_<id>
label_<label>
slot_<slot>-label_<label>
where <id> is the PKCS #11 key identifier in hexadecimal notation, <label> is the PKCS #11 human-readable label, and <slot> is the slot number where the token is present. got it? got it. π
more recent versions of OpenSSL engines may support the PKCS #11 URI scheme (RFC 7512), so please consult your engine's documentation for that one β that's above my pay grade and also above this manpage's.
and if it's not already present, a DNSKEY RR is generated from the key data, and added to the zone. it just does that. π«Ά
β EXAMPLES β
ldns-signzone nlnetlabs.nl Knlnetlabs.nl.+005+12273
sign the zone in the file nlnetlabs.nl with the key in the files Knlnetlabs.nl.+005+12273.private. if the DNSKEY is not present in the zone, use the key in the file Knlnetlabs.nl.+005+12273.key. and if that is not present either, generate one with default values from Knlnetlabs.nl.+005+12273.private. three-tier fallback, the pipeline of all time. π₯
πΈ AUTHORS πΈ
written by the ldns team as an example for ldns usage.
portions of engine support by Vadim Penzin <vadim@penzin.net>. thank you for your service π«‘
π¨ REPORTING BUGS π¨
report bugs to <dns-team@nlnetlabs.nl>. if something's broken, tell the team, don't suffer in silence bestie.
π COPYRIGHT π
Copyright (C) 2005-2008 NLnet Labs. this is free software. there is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
okay real talk: no warranty means no warranty. if it breaks, that's on you, not on them. read that twice, bestie. π
and that's the whole page! this was the ldns-signzone(1) manpage from 13 March 2018, brought to you by the General Commands Manual girlies. go sign your zone, secure your DNS, and remember: your RRSIGs are valid, your keys are SEP-bit blessed, and you are the main character. periodt. πβ¨π¦
π¦ where this page comes from
- arch rolling: ldns 1.9.2-1 Β· custom:BSD
- fedora 43: ldns-utils 1.9.2-1.fc43 Β· BSD-3-Clause
- fedora 44: ldns-utils 1.9.0-2.fc44 Β· BSD-3-Clause
- fedora 44: ldns-utils 1.9.2-1.fc44 Β· BSD-3-Clause
- nixos 26.05: ldns 1.9.2
- nixpkgs unstable: ldns 1.9.2
- ubuntu stonking: ldnsutils 1.9.2-1ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms