YAKEYROLLD(8)

🌸 YAKEYROLLD(8) β€” the YADIFA key-rolling bestie 🌸

okay so first things first: this is a page from the YADIFA manual set, and honestly? she's a lot, but she's worth it. πŸ’…

✨ NAME ✨

YAKEYROLLD is a utility for generating a sequence of KSK and ZSK for a zone. yes, that's the whole vibe: it makes keys, and it makes sequences of keys. πŸ—οΈβœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

yakeyrolld command [argument]

πŸ’– DESCRIPTION πŸ’–

So the yakeyrolld program generates a sequence of KSK and ZSK for a zone, and it does it with all the steps of their lifecycles β€” like, the whole glow-up, from creation to retirement. no shortcuts, no skipped chapters. πŸ‘‘

yakeyrolld is part of the YADIFA distribution from EURid vzw/asbl. the latest version of YADIFA can be found at:

http://www.yadifa.eu/download

go get her 🫢


🌈 LIFECYCLE 🌈

okay so a lifecycle for a key has several steps, and yes, it's giving main character energy from start to finish:

  • Time of creation
  • Time of publication
  • Time of activation
  • Time of de-activation
  • Time of un-publication.

these times are determined using a cron-like schedule. periodt. ⏰

For all these steps, it computes the following:

  • The expected DNSSEC and RRSIG DNSSEC records on the primary before the step is started
  • The ZSK files to add
  • The ZSK files to remove
  • The DNSSEC and RRSIG DNSKEY records to add
  • The DNSKEY and RRSIG DNSKEY records to remove
  • The expected DNSKEY and RRSIG DNSKEY records on the dns primary after the step has been completed.

Each step is stored as a file πŸ“„ β€” and the file contains fields like:

  • epochus β€” An integer with the epoch of the step expressed in microseconds.
  • dateus β€” A user-friendly date text matching the epochus field.
  • actions β€” A list of actions expected to happen on the step (informational).
  • debug β€” A text meant to help understand the step (informational).
  • update β€” Each entry is a dynamic update command to be sent to the server.
  • expect β€” Each entry defines one record expected to be in the zone on the server prior to executing the current step.
  • endresult β€” Each entry defines one record expected to be in the zone on the server after the step has been executed.
  • add β€” Defines a key file to create in keys-path.
  • del β€” Names a key file to delete from keys-path.

πŸŽ€ COMMANDS πŸŽ€

  • --help, -h β€” Shows the help
  • --version, -V β€” Prints the version of the software
  • --config, -c configfile β€” Sets the configuration file to use
  • --mode, -m generate | play | playloop | print | print-json β€” Sets the program mode
  • --domain fqdn β€” The domain name
  • --path, -p directory β€” The directory where to store the keys
  • --server, -s address β€” The address of the server
  • --ttl, -t seconds β€” The ttl to use for both dnskey and rrsig records
  • --explain β€” prints the planned schedule
  • --reset β€” start by removing all the keys and create a new KSK and a new ZSK. The server will not be queried.
  • --policy β€” Name of the policy to use
  • --from time β€” The lower time bound covered by the plan (now)
  • --until time β€” The upper time bound covered by the plan (+1y)
  • --dryrun β€” Do not write files to disk, do not send updates to the server
  • --wait β€” Wait for yadifad to answer before starting to work (default)
  • --nowait β€” Do not wait for yadifad to answer before starting to work
  • --daemon β€” Daemonise the program for supported modes (default)
  • --nodaemon β€” Do not daemonise the program
  • --noconfirm β€” Do not ask for confirmation before doing a data reset

🧚 USAGE 🧚

The yakeyrolld daemon writes key files in the yadifad keys directory and pushes DNSKEY and RRSIG records with a dynamic update. πŸ”₯

Zones managed by the keyroll needs to have the rrsig-nsupdate-allowed setting enabled (<zone> section).

In generation mode, the daemon needs access to both the plan and private keys directory.

For all other modes, the private keys directory is ignored.

⚠️ real talk bestie: When not doing any kind of generation, they should not be kept on the machine. Their encrypted backup sitting in a safe place. πŸ’€ like, keep those private keys OUT of the day-to-day, okay?

πŸ’œ Initialisation

Destroys all current data that could exist and starts from nothing. Creates all the steps of the rolls for the next two years. Creates all the private keys in a separate directory.

The directory that contains the private key files is required for this command as private keys will be added.

yakeyrolld -m generate --until +1y --reset

πŸ’œ Renewal

In order to extend a plan further, simply do another generation.

The operation loads the current plan, extends it to cover the new limit date and saves the updated modified version back on disk.

Previously stored private keys may be used to generate signatures and new private keys may be added.

Because of this, the directory that contains the private key files is required for this command.

yakeyrolld -m generate --until +1y

πŸ’œ Plan calendar

Details of the current plan can be printed on stdout using:

yakeyrolld -m print
πŸ™ˆ heads up: The output format of that command isn't meant to be parsed by a program.

For a script, use instead:

yakeyrolld -m print-json

slay, machine-readable. πŸ€–βœ¨

πŸ’œ Daemon

To start the rolling the keys and pushing them to the server, use:

yakeyrolld -m playloop

and that's it, she's live, no cap. 🌟


πŸ“ FILES πŸ“

  • ${SYSCONFDIR}/yakeyrolld.conf β€” The default yakeyrolld configuration file.
  • yakeyrolld.conf.5 β€” Configuration man page for yakeyrolld.

πŸ‘‘ SEE ALSO πŸ‘‘

yakeyrolld.conf(5)


⭐ REQUIREMENTS ⭐

  • OpenSSL β€” yakeyrolld requires OpenSSL version 1.1.1 or later. (yes, 1.1.1 is the minimum, don't come at me with anything older 😭)

πŸ”₯ CHANGES πŸ”₯

Please check the ChangeLog file from the sources code.


🌟 VERSION 🌟

Version: 3.0.9 of 2026-03-24.


πŸ’Œ MAILINGLIST πŸ’Œ

There is a mailinglist for questions relating to any program in the yadifa package:

If you would like to stay informed about new versions and official patches send a subscription request to via:

go subscribe, iykyk 🫢


(C)2011-2025, EURid
B-1831 Diegem, Belgium
info@yadifa.eu

πŸŽ€ AUTHORS πŸŽ€

  • Gery Van Emelen β€” Email: Gery.VanEmelen@EURid.eu
  • Eric Diaz Fernandez β€” Email: Eric.DiazFernandez@EURid.eu

WWW: http://www.EURid.eu


and that's the whole page, bestie! πŸ¦‹ this was YAKEYROLLD(8), dated 2026-03-24, from the YADIFA corner of the world β€” mwah, go roll those keys responsibly πŸ’–βœ¨

πŸ“¦ where this page comes from