Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KEYMGR(8)			   Knot	DNS			     KEYMGR(8)

NAME
       keymgr -	Knot DNS key management	utility

SYNOPSIS
       keymgr [config_option] [options]	zone_name command

       keymgr [config_option] [options]	keystore_id command

       keymgr [config_option] [-j] -l

       keymgr -t parameter...

DESCRIPTION
       The keymgr utility serves for manual key	management in Knot DNS server.

       Functions  for  DNSSEC keys and KASP (Key And Signature Policy) manage-
       ment are	provided.

       The DNSSEC and KASP configuration is stored in a	so called  KASP	 data-
       base.  The database is backed by	LMDB.

   Parameters
       zone_name
	      Name of the zone the command is executed for.

   Config options
       -c, --config file
	      Use   a	textual	  configuration	  file	(default  is  /usr/lo-
	      cal/etc/knot/knot.conf).

       -C, --confdb directory
	      Use  a  binary  configuration  database  directory  (default  is
	      /usr/local/var/lib/knot/confdb).	  The	default	 configuration
	      database,	if exists, has a preference to the default  configura-
	      tion file.

       -D, --dir path
	      Use specified KASP database path and default configuration.

   Options
       -t, --tsig tsig_name [tsig_algorithm [tsig_bits]]
	      Generates	 a TSIG	key for	the given name.	Optionally the key al-
	      gorithm can be specified by its name (default: hmac-sha256)  and
	      a	 bit length of the key (default: optimal length	given by algo-
	      rithm).  The generated TSIG key is only displayed	on stdout: the
	      command does not create a	file, nor include the key  in  a  key-
	      store.

       -e, --extended
	      Extended output (listing of keys with full description).

       -j, --json
	      Print the	zones or keys (not TSIG	keys) in JSON format.

       -l, --list
	      Print the	list of	zones that have	at least one key stored	in the
	      configured KASP database.

       -x, --mono
	      Don't generate colorized output.

       -X, --color
	      Force colorized output in	the normal mode.

       -h, --help
	      Print the	program	help.

       -V, --version
	      Print  the  program  version.  The  option -VV makes the program
	      print the	compile	time configuration summary.

       NOTE:
	  Keymgr runs with the same user privileges as configured  for	knotd.
	  For  example,	 if  keymgr is run as root, but	the configured user is
	  knot,	it won't be able to read files (PEM files, KASP	database, ...)
	  readable only	by root.

   Commands
       list [timestamp_format]
	      Prints the list of key IDs and parameters	of keys	 belonging  to
	      the zone.

       generate	[arguments...]
	      Generates	 new DNSSEC key	and stores it in KASP database.	Prints
	      the key ID.  This	action takes some number of arguments (see be-
	      low). Values for unspecified arguments  are  taken  from	corre-
	      sponding	policy	(if -c or -C options used) or from Knot	policy
	      defaults.

       import-bind BIND_key_file
	      Imports a	BIND-style key into KASP database  (converting	it  to
	      PEM format).  Takes one argument:	path to	BIND key file (private
	      or public, but both MUST exist).

       import-pub BIND_pubkey_file
	      Imports  a  public  key  into  KASP  database. This key won't be
	      rolled over nor used for signing.	 Takes one argument:  path  to
	      BIND public key file.

       import-pem PEM_file [arguments...]
	      Imports  a DNSSEC	key from PEM file. The key parameters (same as
	      for the generate action) need to be specified (mainly algorithm,
	      timers...) because they are not contained	in the PEM format.

       import-pkcs11 key_id [arguments...]
	      Imports a	DNSSEC key from	PKCS #11 storage. The  key  parameters
	      (same  as	 for the generate action) need to be specified (mainly
	      algorithm, timers...) because they are not available.  In	 fact,
	      no key data is imported, only KASP database metadata is created.

       nsec3-salt [new_salt]
	      Prints  the  current NSEC3 salt used for signing.	If new_salt is
	      specified, the salt is overwritten.  The salt is printed and ex-
	      pected in	hexadecimal, or	dash if	empty.

       master-serial [new_serial]
	      Print SOA	serial of the remote master stored  in	KASP  database
	      when using on-secondary DNSSEC signing.  If new_serial is	speci-
	      fied, the	serial is overwritten (not recommended).

       set key_spec [arguments...]
	      Changes  a  timing argument (or ksk/zsk) of an existing key to a
	      new value. Key_spec is either the	key tag	or a prefix of the key
	      ID, with an optional [id=|keytag=] prefix;  arguments  are  like
	      for generate, but	just the related ones.

       ds [key_spec]
	      Generate	DS  record (all	digest algorithms together) for	speci-
	      fied key.	Key_spec is like for set, if unspecified, all KSKs are
	      used.

       dnskey [key_spec]
	      Generate DNSKEY record for specified key.	Key_spec is  like  for
	      ds, if unspecified, all KSKs are used.

       delete key_spec
	      Remove  the  specified key from zone. If the key was not shared,
	      it is also deleted from keystore.

       share key_ID zone_from
	      Import a key (specified by full key ID)  from  another  zone  as
	      shared. After this, the key is owned by both zones equally.

   Keystore commands
       keystore-test
	      Conduct  some  tests  on	the specified keystore.	For each algo-
	      rithm, key generation, import, removal,  and  use	 (signing  and
	      verification) are	tested.	 Use a configured keystore_id or - for
	      the default.

       keystore-bench [num_threads]
	      Conduct  a  signing benchmark on the specified keystore.	Random
	      blocks of	data are signed	by the selected	number of threads (de-
	      fault is 1) in a loop, and the average number of signing	opera-
	      tions  per second	for each algorithm is returned.	 Use a config-
	      ured keystore_id or - for	the default.

   Commands related to Offline KSK feature
       pregenerate [timestamp-from] timestamp-to
	      Pre-generate ZSKs	for use	with offline KSK,  for	the  specified
	      period  starting from now	or specified time.  This function also
	      applies to non-offline KSK keys.

       show-offline [timestamp-from] [timestamp-to]
	      Print pre-generated offline key-related  records	for  specified
	      time  interval. If timestamp_to is omitted, it will be to	infin-
	      ity. If timestamp-from is	omitted, it will start from the	begin-
	      ning.

       del-offline timestamp-from timestamp-to
	      Delete pre-generated offline key-related	records	 in  specified
	      time interval.

       del-all-old
	      Delete  old keys that are	in state 'removed'. This function also
	      applies to non-offline KSK keys.

       generate-ksr [timestamp-from] timestamp-to
	      Print to stdout KeySigningRequest	based  on  pre-generated  ZSKs
	      for  specified time period.  If timestamp-from is	omitted, time-
	      stamp of the last	offline	records	set  is	 used  or  now	if  no
	      records available.

       sign-ksr	ksr_file
	      Read  KeySigningRequest  from  a	text file, sign	it using local
	      keyset and print SignedKeyResponse to stdout.

       validate-skr skr_file
	      Read SignedKeyResponse from a text file and validate the	RRSIGs
	      in it if not corrupt.

       import-skr skr_file
	      Read  SignedKeyResponse  from  a text file and import the	signa-
	      tures for	later use in zone. If  some  signatures	 have  already
	      been  imported,  they will be deleted for	the period from	begin-
	      ning of the SKR to infinity.

   Generate arguments
       Arguments  are  separated  by  space,  each  of	them  is   in	format
       'name=value'.  A	(bool) argument	accepts	values yes or no. If the value
       is omitted, it's	interpreted as yes.

       algorithm
	      Either an	algorithm number (e.g. 14)  or	algorithm  name	 (e.g.
	      ecdsap256sha256).

       size   Key length in bits.

       ksk    (bool) The key will be used for signing DNSKEY rrset. The	gener-
	      ated key will also have the Secure Entry Point flag set to 1.

       zsk    (bool)  The  key	will  be  used for signing zone	(except	DNSKEY
	      rrset). This flag	can be set concurrently	with the ksk flag (for
	      a	CSK key).

       sep    (bool) Overrides the standard setting of the Secure Entry	 Point
	      flag.

       for-later
	      (bool) The key will be determined	for later use. It means	once a
	      new  key ought to	be generated, this one will be used instead if
	      the key type and algorithm match.

       The following arguments are timestamps of key lifetime (see DNSSEC  key
       states):

       pre_active
	      Key  started to be used for signing, not published (only for al-
	      gorithm rollover).

       publish
	      Key published.

       ready  Key is waiting for submission (only for KSK).

       active Key used for signing.

       retire_active
	      Key still	used for signing, but another key is active (only  for
	      KSK or algorithm rollover).

       retire Key  still published (only if ZSK), but no longer	used for sign-
	      ing.

       post_active
	      Key no longer published, but still used for  signing  (only  for
	      algorithm	rollover).

       revoke Key revoked according to RFC 5011	trust anchor roll-over.

       remove Key deleted.

   Timestamps
       0      Zero timestamp means infinite future.

       UNIX_time
	      Positive number of seconds since 1970 UTC.

       YYYYMMDDHHMMSS
	      Date and time in this format without any punctuation.

       relative_timestamp
	      A	sign character (+, -), a number, and an	optional time unit (y,
	      mo,  d,  h,  mi, s). The default unit is one second.  E.g. +1mi,
	      -2mo.

   Output timestamp formats
       (none) The timestamps are printed as UNIX timestamp.

       human  The timestamps are printed relatively to now  using  time	 units
	      (e.g. -2y5mo, +1h13s).

       iso    The   timestamps	 are  printed  in  the	ISO8601	 format	 (e.g.
	      2016-12-31T23:59:00).

EXIT VALUES
       Exit status of 0	means successful operation. Any	other exit status  in-
       dicates an error.

EXAMPLES
       1. Generate new TSIG key:

	     $ keymgr -t my_name hmac-sha384

       2. Generate new DNSSEC key:

	     $ keymgr example.com. generate algorithm=ECDSAP256SHA256 size=256 \
	       ksk=true	created=1488034625 publish=20170223205611 retire=+10mo remove=+1y

       3. Import a DNSSEC key from BIND:

	     $ keymgr example.com. import-bind ~/bind/Kharbinge4d5.+007+63089.key

       4. Import a CSK DNSSEC key from a PEM file:

	     $ keymgr example.com. import-pem 085d3890e8c22d854586678d9263933f2d02d795.pem ksk=yes zsk=yes

       5. Configure key	timing:

	     $ keymgr example.com. set 4208 active=+2mi	retire=+4mi remove=+5mi

       6. Share	a KSK from another zone:

	     $ keymgr example.com. share e687cf927029e9db7184d2ece6d663f5d1e5b0e9 another-zone.com.

SEE ALSO
       RFC  6781  -  DNSSEC  Operational  Practices.   RFC  7583  - DNSSEC Key
       Rollover	Timing Considerations.

       knot.conf(5), knotc(8), knotd(8).

AUTHOR
       CZ.NIC, z.s.p.o.	and contributors <https://www.knot-dns.cz/>

COPYRIGHT
       Copyright (C) CZ.NIC, z.s.p.o. and contributors

3.5.3				  2026-01-16			     KEYMGR(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=keymgr&sektion=8&manpath=FreeBSD+Ports+15.0.quarterly>

home | help