]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/blob - contrib/bind9/bin/dnssec/dnssec-signzone.docbook
MFC r363988:
[FreeBSD/stable/9.git] / contrib / bind9 / bin / dnssec / dnssec-signzone.docbook
1 <!--
2  - Copyright (C) 2004-2009, 2011, 2013-2015  Internet Systems Consortium, Inc. ("ISC")
3  - Copyright (C) 2000-2003  Internet Software Consortium.
4  -
5  - Permission to use, copy, modify, and/or distribute this software for any
6  - purpose with or without fee is hereby granted, provided that the above
7  - copyright notice and this permission notice appear in all copies.
8  -
9  - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10  - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11  - AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12  - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13  - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14  - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15  - PERFORMANCE OF THIS SOFTWARE.
16 -->
17
18 <!-- Converted by db4-upgrade version 1.0 -->
19 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man.dnssec-signzone">
20   <info>
21     <date>2013-12-11</date>
22   </info>
23   <refentryinfo>
24     <corpname>ISC</corpname>
25     <corpauthor>Internet Systems Consortium, Inc.</corpauthor>
26   </refentryinfo>
27
28   <refmeta>
29     <refentrytitle><application>dnssec-signzone</application></refentrytitle>
30    <manvolnum>8</manvolnum>
31     <refmiscinfo>BIND9</refmiscinfo>
32   </refmeta>
33
34   <refnamediv>
35     <refname><application>dnssec-signzone</application></refname>
36     <refpurpose>DNSSEC zone signing tool</refpurpose>
37   </refnamediv>
38
39   <docinfo>
40     <copyright>
41       <year>2004</year>
42       <year>2005</year>
43       <year>2006</year>
44       <year>2007</year>
45       <year>2008</year>
46       <year>2009</year>
47       <year>2011</year>
48       <year>2013</year>
49       <year>2014</year>
50       <year>2015</year>
51       <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
52     </copyright>
53     <copyright>
54       <year>2000</year>
55       <year>2001</year>
56       <year>2002</year>
57       <year>2003</year>
58       <holder>Internet Software Consortium.</holder>
59     </copyright>
60   </docinfo>
61
62   <refsynopsisdiv>
63     <cmdsynopsis sepchar=" ">
64       <command>dnssec-signzone</command>
65       <arg choice="opt" rep="norepeat"><option>-a</option></arg>
66       <arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">class</replaceable></option></arg>
67       <arg choice="opt" rep="norepeat"><option>-d <replaceable class="parameter">directory</replaceable></option></arg>
68       <arg choice="opt" rep="norepeat"><option>-D</option></arg>
69       <arg choice="opt" rep="norepeat"><option>-E <replaceable class="parameter">engine</replaceable></option></arg>
70       <arg choice="opt" rep="norepeat"><option>-e <replaceable class="parameter">end-time</replaceable></option></arg>
71       <arg choice="opt" rep="norepeat"><option>-f <replaceable class="parameter">output-file</replaceable></option></arg>
72       <arg choice="opt" rep="norepeat"><option>-g</option></arg>
73       <arg choice="opt" rep="norepeat"><option>-h</option></arg>
74       <arg choice="opt" rep="norepeat"><option>-K <replaceable class="parameter">directory</replaceable></option></arg>
75       <arg choice="opt" rep="norepeat"><option>-k <replaceable class="parameter">key</replaceable></option></arg>
76       <arg choice="opt" rep="norepeat"><option>-L <replaceable class="parameter">serial</replaceable></option></arg>
77       <arg choice="opt" rep="norepeat"><option>-l <replaceable class="parameter">domain</replaceable></option></arg>
78       <arg choice="opt" rep="norepeat"><option>-i <replaceable class="parameter">interval</replaceable></option></arg>
79       <arg choice="opt" rep="norepeat"><option>-I <replaceable class="parameter">input-format</replaceable></option></arg>
80       <arg choice="opt" rep="norepeat"><option>-j <replaceable class="parameter">jitter</replaceable></option></arg>
81       <arg choice="opt" rep="norepeat"><option>-N <replaceable class="parameter">soa-serial-format</replaceable></option></arg>
82       <arg choice="opt" rep="norepeat"><option>-o <replaceable class="parameter">origin</replaceable></option></arg>
83       <arg choice="opt" rep="norepeat"><option>-O <replaceable class="parameter">output-format</replaceable></option></arg>
84       <arg choice="opt" rep="norepeat"><option>-P</option></arg>
85       <arg choice="opt" rep="norepeat"><option>-p</option></arg>
86       <arg choice="opt" rep="norepeat"><option>-R</option></arg>
87       <arg choice="opt" rep="norepeat"><option>-r <replaceable class="parameter">randomdev</replaceable></option></arg>
88       <arg choice="opt" rep="norepeat"><option>-S</option></arg>
89       <arg choice="opt" rep="norepeat"><option>-s <replaceable class="parameter">start-time</replaceable></option></arg>
90       <arg choice="opt" rep="norepeat"><option>-T <replaceable class="parameter">ttl</replaceable></option></arg>
91       <arg choice="opt" rep="norepeat"><option>-t</option></arg>
92       <arg choice="opt" rep="norepeat"><option>-u</option></arg>
93       <arg choice="opt" rep="norepeat"><option>-v <replaceable class="parameter">level</replaceable></option></arg>
94       <arg choice="opt" rep="norepeat"><option>-V</option></arg>
95       <arg choice="opt" rep="norepeat"><option>-X <replaceable class="parameter">extended end-time</replaceable></option></arg>
96       <arg choice="opt" rep="norepeat"><option>-x</option></arg>
97       <arg choice="opt" rep="norepeat"><option>-z</option></arg>
98       <arg choice="opt" rep="norepeat"><option>-3 <replaceable class="parameter">salt</replaceable></option></arg>
99       <arg choice="opt" rep="norepeat"><option>-H <replaceable class="parameter">iterations</replaceable></option></arg>
100       <arg choice="opt" rep="norepeat"><option>-A</option></arg>
101       <arg choice="req" rep="norepeat">zonefile</arg>
102       <arg rep="repeat" choice="opt">key</arg>
103     </cmdsynopsis>
104   </refsynopsisdiv>
105
106   <refsection><info><title>DESCRIPTION</title></info>
107
108     <para><command>dnssec-signzone</command>
109       signs a zone.  It generates
110       NSEC and RRSIG records and produces a signed version of the
111       zone. The security status of delegations from the signed zone
112       (that is, whether the child zones are secure or not) is
113       determined by the presence or absence of a
114       <filename>keyset</filename> file for each child zone.
115     </para>
116   </refsection>
117
118   <refsection><info><title>OPTIONS</title></info>
119
120
121     <variablelist>
122       <varlistentry>
123         <term>-a</term>
124         <listitem>
125           <para>
126             Verify all generated signatures.
127           </para>
128         </listitem>
129       </varlistentry>
130
131       <varlistentry>
132         <term>-c <replaceable class="parameter">class</replaceable></term>
133         <listitem>
134           <para>
135             Specifies the DNS class of the zone.
136           </para>
137         </listitem>
138       </varlistentry>
139
140       <varlistentry>
141         <term>-C</term>
142         <listitem>
143           <para>
144             Compatibility mode: Generate a
145             <filename>keyset-<replaceable>zonename</replaceable></filename>
146             file in addition to
147             <filename>dsset-<replaceable>zonename</replaceable></filename>
148             when signing a zone, for use by older versions of
149             <command>dnssec-signzone</command>.
150           </para>
151         </listitem>
152       </varlistentry>
153
154       <varlistentry>
155         <term>-d <replaceable class="parameter">directory</replaceable></term>
156         <listitem>
157           <para>
158             Look for <filename>dsset-</filename> or
159             <filename>keyset-</filename> files in <option>directory</option>.
160           </para>
161         </listitem>
162       </varlistentry>
163
164       <varlistentry>
165         <term>-D</term>
166         <listitem>
167           <para>
168             Output only those record types automatically managed by
169             <command>dnssec-signzone</command>, i.e. RRSIG, NSEC,
170             NSEC3 and NSEC3PARAM records. If smart signing
171             (<option>-S</option>) is used, DNSKEY records are also
172             included. The resulting file can be included in the original
173             zone file with <command>$INCLUDE</command>. This option
174             cannot be combined with <option>-O raw</option> or serial
175             number updating.
176           </para>
177         </listitem>
178       </varlistentry>
179
180       <varlistentry>
181         <term>-E <replaceable class="parameter">engine</replaceable></term>
182         <listitem>
183           <para>
184             Uses a crypto hardware (OpenSSL engine) for the crypto operations
185             it supports, for instance signing with private keys from
186             a secure key store. When compiled with PKCS#11 support
187             it defaults to pkcs11; the empty name resets it to no engine.
188           </para>
189         </listitem>
190       </varlistentry>
191
192       <varlistentry>
193         <term>-g</term>
194         <listitem>
195           <para>
196             Generate DS records for child zones from
197             <filename>dsset-</filename> or <filename>keyset-</filename>
198             file.  Existing DS records will be removed.
199           </para>
200         </listitem>
201       </varlistentry>
202
203       <varlistentry>
204         <term>-K <replaceable class="parameter">directory</replaceable></term>
205         <listitem>
206           <para>
207             Key repository: Specify a directory to search for DNSSEC keys.
208             If not specified, defaults to the current directory.
209           </para>
210         </listitem>
211       </varlistentry>
212
213       <varlistentry>
214         <term>-k <replaceable class="parameter">key</replaceable></term>
215         <listitem>
216           <para>
217             Treat specified key as a key signing key ignoring any
218             key flags.  This option may be specified multiple times.
219           </para>
220         </listitem>
221       </varlistentry>
222
223       <varlistentry>
224         <term>-l <replaceable class="parameter">domain</replaceable></term>
225         <listitem>
226           <para>
227             Generate a DLV set in addition to the key (DNSKEY) and DS sets.
228             The domain is appended to the name of the records.
229           </para>
230         </listitem>
231       </varlistentry>
232
233       <varlistentry>
234         <term>-s <replaceable class="parameter">start-time</replaceable></term>
235         <listitem>
236           <para>
237             Specify the date and time when the generated RRSIG records
238             become valid.  This can be either an absolute or relative
239             time.  An absolute start time is indicated by a number
240             in YYYYMMDDHHMMSS notation; 20000530144500 denotes
241             14:45:00 UTC on May 30th, 2000.  A relative start time is
242             indicated by +N, which is N seconds from the current time.
243             If no <option>start-time</option> is specified, the current
244             time minus 1 hour (to allow for clock skew) is used.
245           </para>
246         </listitem>
247       </varlistentry>
248
249       <varlistentry>
250         <term>-e <replaceable class="parameter">end-time</replaceable></term>
251         <listitem>
252           <para>
253             Specify the date and time when the generated RRSIG records
254             expire.  As with <option>start-time</option>, an absolute
255             time is indicated in YYYYMMDDHHMMSS notation.  A time relative
256             to the start time is indicated with +N, which is N seconds from
257             the start time.  A time relative to the current time is
258             indicated with now+N.  If no <option>end-time</option> is
259             specified, 30 days from the start time is used as a default.
260             <option>end-time</option> must be later than
261             <option>start-time</option>.
262           </para>
263         </listitem>
264       </varlistentry>
265
266       <varlistentry>
267         <term>-X <replaceable class="parameter">extended end-time</replaceable></term>
268         <listitem>
269           <para>
270             Specify the date and time when the generated RRSIG records
271             for the DNSKEY RRset will expire.  This is to be used in cases
272             when the DNSKEY signatures need to persist longer than
273             signatures on other records; e.g., when the private component
274             of the KSK is kept offline and the KSK signature is to be
275             refreshed manually.
276           </para>
277           <para>
278             As with <option>start-time</option>, an absolute
279             time is indicated in YYYYMMDDHHMMSS notation.  A time relative
280             to the start time is indicated with +N, which is N seconds from
281             the start time.  A time relative to the current time is
282             indicated with now+N.  If no <option>extended end-time</option> is
283             specified, the value of <option>end-time</option> is used as
284             the default.  (<option>end-time</option>, in turn, defaults to
285             30 days from the start time.) <option>extended end-time</option>
286             must be later than <option>start-time</option>.
287           </para>
288         </listitem>
289       </varlistentry>
290
291       <varlistentry>
292         <term>-f <replaceable class="parameter">output-file</replaceable></term>
293         <listitem>
294           <para>
295             The name of the output file containing the signed zone.  The
296             default is to append <filename>.signed</filename> to
297             the input filename.  If <option>output-file</option> is
298             set to <literal>"-"</literal>, then the signed zone is
299             written to the standard output, with a default output
300             format of "full".
301           </para>
302         </listitem>
303       </varlistentry>
304
305       <varlistentry>
306         <term>-h</term>
307         <listitem>
308           <para>
309             Prints a short summary of the options and arguments to
310             <command>dnssec-signzone</command>.
311           </para>
312         </listitem>
313       </varlistentry>
314
315       <varlistentry>
316         <term>-V</term>
317         <listitem>
318           <para>
319             Prints version information.
320           </para>
321         </listitem>
322       </varlistentry>
323
324       <varlistentry>
325         <term>-i <replaceable class="parameter">interval</replaceable></term>
326         <listitem>
327           <para>
328             When a previously-signed zone is passed as input, records
329             may be resigned.  The <option>interval</option> option
330             specifies the cycle interval as an offset from the current
331             time (in seconds).  If a RRSIG record expires after the
332             cycle interval, it is retained.  Otherwise, it is considered
333             to be expiring soon, and it will be replaced.
334           </para>
335           <para>
336             The default cycle interval is one quarter of the difference
337             between the signature end and start times.  So if neither
338             <option>end-time</option> or <option>start-time</option>
339             are specified, <command>dnssec-signzone</command>
340             generates
341             signatures that are valid for 30 days, with a cycle
342             interval of 7.5 days.  Therefore, if any existing RRSIG records
343             are due to expire in less than 7.5 days, they would be
344             replaced.
345           </para>
346         </listitem>
347       </varlistentry>
348
349       <varlistentry>
350         <term>-I <replaceable class="parameter">input-format</replaceable></term>
351         <listitem>
352           <para>
353             The format of the input zone file.
354             Possible formats are <command>"text"</command> (default)
355             and <command>"raw"</command>.
356             This option is primarily intended to be used for dynamic
357             signed zones so that the dumped zone file in a non-text
358             format containing updates can be signed directly.
359             The use of this option does not make much sense for
360             non-dynamic zones.
361           </para>
362         </listitem>
363       </varlistentry>
364
365       <varlistentry>
366         <term>-j <replaceable class="parameter">jitter</replaceable></term>
367         <listitem>
368           <para>
369             When signing a zone with a fixed signature lifetime, all
370             RRSIG records issued at the time of signing expires
371             simultaneously.  If the zone is incrementally signed, i.e.
372             a previously-signed zone is passed as input to the signer,
373             all expired signatures have to be regenerated at about the
374             same time.  The <option>jitter</option> option specifies a
375             jitter window that will be used to randomize the signature
376             expire time, thus spreading incremental signature
377             regeneration over time.
378           </para>
379           <para>
380             Signature lifetime jitter also to some extent benefits
381             validators and servers by spreading out cache expiration,
382             i.e. if large numbers of RRSIGs don't expire at the same time
383             from all caches there will be less congestion than if all
384             validators need to refetch at mostly the same time.
385           </para>
386         </listitem>
387       </varlistentry>
388
389       <varlistentry>
390         <term>-L <replaceable class="parameter">serial</replaceable></term>
391         <listitem>
392           <para>
393             When writing a signed zone to 'raw' format, set the "source serial"
394             value in the header to the specified serial number.  (This is
395             expected to be used primarily for testing purposes.)
396           </para>
397         </listitem>
398       </varlistentry>
399
400       <varlistentry>
401         <term>-n <replaceable class="parameter">ncpus</replaceable></term>
402         <listitem>
403           <para>
404             Specifies the number of threads to use.  By default, one
405             thread is started for each detected CPU.
406           </para>
407         </listitem>
408       </varlistentry>
409
410       <varlistentry>
411         <term>-N <replaceable class="parameter">soa-serial-format</replaceable></term>
412         <listitem>
413           <para>
414             The SOA serial number format of the signed zone.
415             Possible formats are <command>"keep"</command> (default),
416             <command>"increment"</command> and
417             <command>"unixtime"</command>.
418           </para>
419
420           <variablelist>
421             <varlistentry>
422               <term><command>"keep"</command></term>
423               <listitem>
424                 <para>Do not modify the SOA serial number.</para>
425               </listitem>
426             </varlistentry>
427
428             <varlistentry>
429               <term><command>"increment"</command></term>
430               <listitem>
431                 <para>Increment the SOA serial number using RFC 1982
432                       arithmetics.</para>
433               </listitem>
434             </varlistentry>
435
436             <varlistentry>
437               <term><command>"unixtime"</command></term>
438               <listitem>
439                 <para>Set the SOA serial number to the number of seconds
440                 since epoch.</para>
441               </listitem>
442             </varlistentry>
443          </variablelist>
444
445         </listitem>
446       </varlistentry>
447
448       <varlistentry>
449         <term>-o <replaceable class="parameter">origin</replaceable></term>
450         <listitem>
451           <para>
452             The zone origin.  If not specified, the name of the zone file
453             is assumed to be the origin.
454           </para>
455         </listitem>
456       </varlistentry>
457
458       <varlistentry>
459         <term>-O <replaceable class="parameter">output-format</replaceable></term>
460         <listitem>
461           <para>
462             The format of the output file containing the signed zone.
463             Possible formats are <command>"text"</command> (default)
464             <command>"full"</command>, which is text output in a
465             format suitable for processing by external scripts,
466             and <command>"raw"</command> or <command>"raw=N"</command>,
467             which store the zone in a binary format for rapid loading
468             by <command>named</command>.  <command>"raw=N"</command>
469             specifies the format version of the raw zone file: if N
470             is 0, the raw file can be read by any version of
471             <command>named</command>; if N is 1, the file can be
472             read by release 9.9.0 or higher.  The default is 1.
473           </para>
474         </listitem>
475       </varlistentry>
476
477       <varlistentry>
478         <term>-p</term>
479         <listitem>
480           <para>
481             Use pseudo-random data when signing the zone.  This is faster,
482             but less secure, than using real random data.  This option
483             may be useful when signing large zones or when the entropy
484             source is limited.
485           </para>
486         </listitem>
487       </varlistentry>
488
489       <varlistentry>
490         <term>-P</term>
491         <listitem>
492           <para>
493             Disable post sign verification tests.
494           </para>
495           <para>
496             The post sign verification test ensures that for each algorithm
497             in use there is at least one non revoked self signed KSK key,
498             that all revoked KSK keys are self signed, and that all records
499             in the zone are signed by the algorithm.
500             This option skips these tests.
501           </para>
502         </listitem>
503       </varlistentry>
504
505       <varlistentry>
506         <term>-Q</term>
507         <listitem>
508           <para>
509             Remove signatures from keys that are no longer active.
510           </para>
511           <para>
512             Normally, when a previously-signed zone is passed as input
513             to the signer, and a DNSKEY record has been removed and
514             replaced with a new one, signatures from the old key
515             that are still within their validity period are retained.
516             This allows the zone to continue to validate with cached
517             copies of the old DNSKEY RRset.  The <option>-Q</option>
518             forces <command>dnssec-signzone</command> to remove
519             signatures from keys that are no longer active. This
520             enables ZSK rollover using the procedure described in
521             RFC 4641, section 4.2.1.1 ("Pre-Publish Key Rollover").
522           </para>
523         </listitem>
524       </varlistentry>
525       <varlistentry>
526         <term>-R</term>
527         <listitem>
528           <para>
529             Remove signatures from keys that are no longer published.
530           </para>
531           <para>
532             This option is similar to <option>-Q</option>, except it
533             forces <command>dnssec-signzone</command> to signatures from
534             keys that are no longer published. This enables ZSK rollover
535             using the procedure described in RFC 4641, section 4.2.1.2
536             ("Double Signature Zone Signing Key Rollover").
537           </para>
538         </listitem>
539       </varlistentry>
540       <varlistentry>
541         <term>-r <replaceable class="parameter">randomdev</replaceable></term>
542         <listitem>
543           <para>
544             Specifies the source of randomness.  If the operating
545             system does not provide a <filename>/dev/random</filename>
546             or equivalent device, the default source of randomness
547             is keyboard input.  <filename>randomdev</filename>
548             specifies
549             the name of a character device or file containing random
550             data to be used instead of the default.  The special value
551             <filename>keyboard</filename> indicates that keyboard
552             input should be used.
553           </para>
554         </listitem>
555       </varlistentry>
556
557       <varlistentry>
558         <term>-S</term>
559         <listitem>
560           <para>
561             Smart signing: Instructs <command>dnssec-signzone</command> to
562             search the key repository for keys that match the zone being
563             signed, and to include them in the zone if appropriate.
564           </para>
565           <para>
566             When a key is found, its timing metadata is examined to
567             determine how it should be used, according to the following
568             rules.  Each successive rule takes priority over the prior
569             ones:
570           </para>
571           <variablelist>
572             <varlistentry>
573               <listitem>
574                 <para>
575                   If no timing metadata has been set for the key, the key is
576                   published in the zone and used to sign the zone.
577                 </para>
578               </listitem>
579             </varlistentry>
580
581             <varlistentry>
582               <listitem>
583                 <para>
584                   If the key's publication date is set and is in the past, the
585                   key is published in the zone.
586                 </para>
587               </listitem>
588             </varlistentry>
589
590             <varlistentry>
591               <listitem>
592                 <para>
593                   If the key's activation date is set and in the past, the
594                   key is published (regardless of publication date) and
595                   used to sign the zone.
596                 </para>
597               </listitem>
598             </varlistentry>
599
600             <varlistentry>
601               <listitem>
602                 <para>
603                   If the key's revocation date is set and in the past, and the
604                   key is published, then the key is revoked, and the revoked key
605                   is used to sign the zone.
606                 </para>
607               </listitem>
608             </varlistentry>
609
610             <varlistentry>
611               <listitem>
612                 <para>
613                   If either of the key's unpublication or deletion dates are set
614                   and in the past, the key is NOT published or used to sign the
615                   zone, regardless of any other metadata.
616                 </para>
617               </listitem>
618             </varlistentry>
619          </variablelist>
620         </listitem>
621       </varlistentry>
622
623       <varlistentry>
624         <term>-T <replaceable class="parameter">ttl</replaceable></term>
625         <listitem>
626           <para>
627             Specifies a TTL to be used for new DNSKEY records imported
628             into the zone from the key repository.  If not
629             specified, the default is the TTL value from the zone's SOA
630             record.  This option is ignored when signing without
631             <option>-S</option>, since DNSKEY records are not imported
632             from the key repository in that case.  It is also ignored if
633             there are any pre-existing DNSKEY records at the zone apex,
634             in which case new records' TTL values will be set to match
635             them, or if any of the imported DNSKEY records had a default
636             TTL value.  In the event of a a conflict between TTL values in
637             imported keys, the shortest one is used.
638           </para>
639         </listitem>
640       </varlistentry>
641
642       <varlistentry>
643         <term>-t</term>
644         <listitem>
645           <para>
646             Print statistics at completion.
647           </para>
648         </listitem>
649       </varlistentry>
650
651       <varlistentry>
652         <term>-u</term>
653         <listitem>
654           <para>
655             Update NSEC/NSEC3 chain when re-signing a previously signed
656             zone.  With this option, a zone signed with NSEC can be
657             switched to NSEC3, or a zone signed with NSEC3 can
658             be switch to NSEC or to NSEC3 with different parameters.
659             Without this option, <command>dnssec-signzone</command> will
660             retain the existing chain when re-signing.
661           </para>
662         </listitem>
663       </varlistentry>
664
665       <varlistentry>
666         <term>-v <replaceable class="parameter">level</replaceable></term>
667         <listitem>
668           <para>
669             Sets the debugging level.
670           </para>
671         </listitem>
672       </varlistentry>
673
674       <varlistentry>
675         <term>-x</term>
676         <listitem>
677           <para>
678             Only sign the DNSKEY RRset with key-signing keys, and omit
679             signatures from zone-signing keys.  (This is similar to the
680             <command>dnssec-dnskey-kskonly yes;</command> zone option in
681             <command>named</command>.)
682           </para>
683         </listitem>
684       </varlistentry>
685
686       <varlistentry>
687         <term>-z</term>
688         <listitem>
689           <para>
690             Ignore KSK flag on key when determining what to sign.  This
691             causes KSK-flagged keys to sign all records, not just the
692             DNSKEY RRset.  (This is similar to the
693             <command>update-check-ksk no;</command> zone option in
694             <command>named</command>.)
695           </para>
696         </listitem>
697       </varlistentry>
698
699       <varlistentry>
700         <term>-3 <replaceable class="parameter">salt</replaceable></term>
701         <listitem>
702           <para>
703             Generate an NSEC3 chain with the given hex encoded salt.
704             A dash (<replaceable class="parameter">salt</replaceable>) can
705             be used to indicate that no salt is to be used when generating                  the NSEC3 chain.
706           </para>
707         </listitem>
708       </varlistentry>
709
710       <varlistentry>
711         <term>-H <replaceable class="parameter">iterations</replaceable></term>
712         <listitem>
713           <para>
714             When generating an NSEC3 chain, use this many iterations.  The
715             default is 10.
716           </para>
717         </listitem>
718       </varlistentry>
719
720       <varlistentry>
721         <term>-A</term>
722         <listitem>
723           <para>
724             When generating an NSEC3 chain set the OPTOUT flag on all
725             NSEC3 records and do not generate NSEC3 records for insecure
726             delegations.
727           </para>
728           <para>
729             Using this option twice (i.e., <option>-AA</option>)
730             turns the OPTOUT flag off for all records.  This is useful
731             when using the <option>-u</option> option to modify an NSEC3
732             chain which previously had OPTOUT set.
733           </para>
734         </listitem>
735       </varlistentry>
736
737       <varlistentry>
738         <term>zonefile</term>
739         <listitem>
740           <para>
741             The file containing the zone to be signed.
742           </para>
743         </listitem>
744       </varlistentry>
745
746       <varlistentry>
747         <term>key</term>
748         <listitem>
749           <para>
750             Specify which keys should be used to sign the zone.  If
751             no keys are specified, then the zone will be examined
752             for DNSKEY records at the zone apex.  If these are found and
753             there are matching private keys, in the current directory,
754             then these will be used for signing.
755           </para>
756         </listitem>
757       </varlistentry>
758
759     </variablelist>
760   </refsection>
761
762   <refsection><info><title>EXAMPLE</title></info>
763
764     <para>
765       The following command signs the <userinput>example.com</userinput>
766       zone with the DSA key generated by <command>dnssec-keygen</command>
767       (Kexample.com.+003+17247).  Because the <command>-S</command> option
768       is not being used, the zone's keys must be in the master file
769       (<filename>db.example.com</filename>).  This invocation looks
770       for <filename>dsset</filename> files, in the current directory,
771       so that DS records can be imported from them (<command>-g</command>).
772     </para>
773 <programlisting>% dnssec-signzone -g -o example.com db.example.com \
774 Kexample.com.+003+17247
775 db.example.com.signed
776 %</programlisting>
777     <para>
778       In the above example, <command>dnssec-signzone</command> creates
779       the file <filename>db.example.com.signed</filename>.  This
780       file should be referenced in a zone statement in a
781       <filename>named.conf</filename> file.
782     </para>
783     <para>
784       This example re-signs a previously signed zone with default parameters.
785       The private keys are assumed to be in the current directory.
786     </para>
787 <programlisting>% cp db.example.com.signed db.example.com
788 % dnssec-signzone -o example.com db.example.com
789 db.example.com.signed
790 %</programlisting>
791   </refsection>
792
793   <refsection><info><title>SEE ALSO</title></info>
794
795     <para><citerefentry>
796         <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum>
797       </citerefentry>,
798       <citetitle>BIND 9 Administrator Reference Manual</citetitle>,
799       <citetitle>RFC 4033</citetitle>, <citetitle>RFC 4641</citetitle>.
800     </para>
801   </refsection>
802
803 </refentry>