etc/services - sync with NetBSD-8
[minix.git] / crypto / external / bsd / openssl / lib / libcrypto / man / openssl_ca.1
blobb2fc44c4d08f7b9d8a17422b294f9af20d14c1a7
1 .\"     $NetBSD: openssl_ca.1,v 1.14 2015/06/12 17:01:14 christos Exp $
2 .\"
3 .\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
4 .\"
5 .\" Standard preamble:
6 .\" ========================================================================
7 .de Sp \" Vertical space (when we can't use .PP)
8 .if t .sp .5v
9 .if n .sp
11 .de Vb \" Begin verbatim text
12 .ft CW
13 .nf
14 .ne \\$1
16 .de Ve \" End verbatim text
17 .ft R
18 .fi
20 .\" Set up some character translations and predefined strings.  \*(-- will
21 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
22 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
23 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
24 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
25 .\" nothing in troff, for use with C<>.
26 .tr \(*W-
27 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
28 .ie n \{\
29 .    ds -- \(*W-
30 .    ds PI pi
31 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
32 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
33 .    ds L" ""
34 .    ds R" ""
35 .    ds C` ""
36 .    ds C' ""
37 'br\}
38 .el\{\
39 .    ds -- \|\(em\|
40 .    ds PI \(*p
41 .    ds L" ``
42 .    ds R" ''
43 .    ds C`
44 .    ds C'
45 'br\}
46 .\"
47 .\" Escape single quotes in literal strings from groff's Unicode transform.
48 .ie \n(.g .ds Aq \(aq
49 .el       .ds Aq '
50 .\"
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
53 .\" entries marked with X<> in POD.  Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
55 .\"
56 .\" Avoid warning from groff about undefined register 'F'.
57 .de IX
59 .nr rF 0
60 .if \n(.g .if rF .nr rF 1
61 .if (\n(rF:(\n(.g==0)) \{
62 .    if \nF \{
63 .        de IX
64 .        tm Index:\\$1\t\\n%\t"\\$2"
66 .        if !\nF==2 \{
67 .            nr % 0
68 .            nr F 2
69 .        \}
70 .    \}
71 .\}
72 .rr rF
73 .\"
74 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
75 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
76 .    \" fudge factors for nroff and troff
77 .if n \{\
78 .    ds #H 0
79 .    ds #V .8m
80 .    ds #F .3m
81 .    ds #[ \f1
82 .    ds #] \fP
83 .\}
84 .if t \{\
85 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
86 .    ds #V .6m
87 .    ds #F 0
88 .    ds #[ \&
89 .    ds #] \&
90 .\}
91 .    \" simple accents for nroff and troff
92 .if n \{\
93 .    ds ' \&
94 .    ds ` \&
95 .    ds ^ \&
96 .    ds , \&
97 .    ds ~ ~
98 .    ds /
99 .\}
100 .if t \{\
101 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
102 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
103 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
104 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
105 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
106 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
108 .    \" troff and (daisy-wheel) nroff accents
109 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
110 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
111 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
112 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
113 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
114 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
115 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
116 .ds ae a\h'-(\w'a'u*4/10)'e
117 .ds Ae A\h'-(\w'A'u*4/10)'E
118 .    \" corrections for vroff
119 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
120 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
121 .    \" for low resolution devices (crt and lpr)
122 .if \n(.H>23 .if \n(.V>19 \
124 .    ds : e
125 .    ds 8 ss
126 .    ds o a
127 .    ds d- d\h'-1'\(ga
128 .    ds D- D\h'-1'\(hy
129 .    ds th \o'bp'
130 .    ds Th \o'LP'
131 .    ds ae ae
132 .    ds Ae AE
134 .rm #[ #] #H #V #F C
135 .\" ========================================================================
137 .IX Title "CA 1"
138 .TH CA 1 "2014-08-10" "1.0.1n" "OpenSSL"
139 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
140 .\" way too many mistakes in technical documents.
141 .if n .ad l
143 .SH "NAME"
144 ca \- sample minimal CA application
145 .SH "LIBRARY"
146 libcrypto, -lcrypto
147 .SH "SYNOPSIS"
148 .IX Header "SYNOPSIS"
149 \&\fBopenssl\fR \fBca\fR
150 [\fB\-verbose\fR]
151 [\fB\-config filename\fR]
152 [\fB\-name section\fR]
153 [\fB\-gencrl\fR]
154 [\fB\-revoke file\fR]
155 [\fB\-status serial\fR]
156 [\fB\-updatedb\fR]
157 [\fB\-crl_reason reason\fR]
158 [\fB\-crl_hold instruction\fR]
159 [\fB\-crl_compromise time\fR]
160 [\fB\-crl_CA_compromise time\fR]
161 [\fB\-crldays days\fR]
162 [\fB\-crlhours hours\fR]
163 [\fB\-crlexts section\fR]
164 [\fB\-startdate date\fR]
165 [\fB\-enddate date\fR]
166 [\fB\-days arg\fR]
167 [\fB\-md arg\fR]
168 [\fB\-policy arg\fR]
169 [\fB\-keyfile arg\fR]
170 [\fB\-keyform PEM|DER\fR]
171 [\fB\-key arg\fR]
172 [\fB\-passin arg\fR]
173 [\fB\-cert file\fR]
174 [\fB\-selfsign\fR]
175 [\fB\-in file\fR]
176 [\fB\-out file\fR]
177 [\fB\-notext\fR]
178 [\fB\-outdir dir\fR]
179 [\fB\-infiles\fR]
180 [\fB\-spkac file\fR]
181 [\fB\-ss_cert file\fR]
182 [\fB\-preserveDN\fR]
183 [\fB\-noemailDN\fR]
184 [\fB\-batch\fR]
185 [\fB\-msie_hack\fR]
186 [\fB\-extensions section\fR]
187 [\fB\-extfile section\fR]
188 [\fB\-engine id\fR]
189 [\fB\-subj arg\fR]
190 [\fB\-utf8\fR]
191 [\fB\-multivalue\-rdn\fR]
192 .SH "DESCRIPTION"
193 .IX Header "DESCRIPTION"
194 The \fBca\fR command is a minimal \s-1CA\s0 application. It can be used
195 to sign certificate requests in a variety of forms and generate
196 CRLs it also maintains a text database of issued certificates
197 and their status.
199 The options descriptions will be divided into each purpose.
200 .SH "CA OPTIONS"
201 .IX Header "CA OPTIONS"
202 .IP "\fB\-config filename\fR" 4
203 .IX Item "-config filename"
204 specifies the configuration file to use.
205 .IP "\fB\-name section\fR" 4
206 .IX Item "-name section"
207 specifies the configuration file section to use (overrides
208 \&\fBdefault_ca\fR in the \fBca\fR section).
209 .IP "\fB\-in filename\fR" 4
210 .IX Item "-in filename"
211 an input filename containing a single certificate request to be
212 signed by the \s-1CA.\s0
213 .IP "\fB\-ss_cert filename\fR" 4
214 .IX Item "-ss_cert filename"
215 a single self signed certificate to be signed by the \s-1CA.\s0
216 .IP "\fB\-spkac filename\fR" 4
217 .IX Item "-spkac filename"
218 a file containing a single Netscape signed public key and challenge
219 and additional field values to be signed by the \s-1CA.\s0 See the \fB\s-1SPKAC FORMAT\s0\fR
220 section for information on the required input and output format.
221 .IP "\fB\-infiles\fR" 4
222 .IX Item "-infiles"
223 if present this should be the last option, all subsequent arguments
224 are assumed to the the names of files containing certificate requests.
225 .IP "\fB\-out filename\fR" 4
226 .IX Item "-out filename"
227 the output file to output certificates to. The default is standard
228 output. The certificate details will also be printed out to this
229 file in \s-1PEM\s0 format (except that \fB\-spkac\fR outputs \s-1DER\s0 format).
230 .IP "\fB\-outdir directory\fR" 4
231 .IX Item "-outdir directory"
232 the directory to output certificates to. The certificate will be
233 written to a filename consisting of the serial number in hex with
234 \&\*(L".pem\*(R" appended.
235 .IP "\fB\-cert\fR" 4
236 .IX Item "-cert"
237 the \s-1CA\s0 certificate file.
238 .IP "\fB\-keyfile filename\fR" 4
239 .IX Item "-keyfile filename"
240 the private key to sign requests with.
241 .IP "\fB\-keyform PEM|DER\fR" 4
242 .IX Item "-keyform PEM|DER"
243 the format of the data in the private key file.
244 The default is \s-1PEM.\s0
245 .IP "\fB\-key password\fR" 4
246 .IX Item "-key password"
247 the password used to encrypt the private key. Since on some
248 systems the command line arguments are visible (e.g. Unix with
249 the 'ps' utility) this option should be used with caution.
250 .IP "\fB\-selfsign\fR" 4
251 .IX Item "-selfsign"
252 indicates the issued certificates are to be signed with the key
253 the certificate requests were signed with (given with \fB\-keyfile\fR).
254 Cerificate requests signed with a different key are ignored.  If
255 \&\fB\-spkac\fR, \fB\-ss_cert\fR or \fB\-gencrl\fR are given, \fB\-selfsign\fR is
256 ignored.
258 A consequence of using \fB\-selfsign\fR is that the self-signed
259 certificate appears among the entries in the certificate database
260 (see the configuration option \fBdatabase\fR), and uses the same
261 serial number counter as all other certificates sign with the
262 self-signed certificate.
263 .IP "\fB\-passin arg\fR" 4
264 .IX Item "-passin arg"
265 the key password source. For more information about the format of \fBarg\fR
266 see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1).
267 .IP "\fB\-verbose\fR" 4
268 .IX Item "-verbose"
269 this prints extra details about the operations being performed.
270 .IP "\fB\-notext\fR" 4
271 .IX Item "-notext"
272 don't output the text form of a certificate to the output file.
273 .IP "\fB\-startdate date\fR" 4
274 .IX Item "-startdate date"
275 this allows the start date to be explicitly set. The format of the
276 date is \s-1YYMMDDHHMMSSZ \s0(the same as an \s-1ASN1\s0 UTCTime structure).
277 .IP "\fB\-enddate date\fR" 4
278 .IX Item "-enddate date"
279 this allows the expiry date to be explicitly set. The format of the
280 date is \s-1YYMMDDHHMMSSZ \s0(the same as an \s-1ASN1\s0 UTCTime structure).
281 .IP "\fB\-days arg\fR" 4
282 .IX Item "-days arg"
283 the number of days to certify the certificate for.
284 .IP "\fB\-md alg\fR" 4
285 .IX Item "-md alg"
286 the message digest to use. Possible values include md5, sha1 and mdc2.
287 This option also applies to CRLs.
288 .IP "\fB\-policy arg\fR" 4
289 .IX Item "-policy arg"
290 this option defines the \s-1CA \s0\*(L"policy\*(R" to use. This is a section in
291 the configuration file which decides which fields should be mandatory
292 or match the \s-1CA\s0 certificate. Check out the \fB\s-1POLICY FORMAT\s0\fR section
293 for more information.
294 .IP "\fB\-msie_hack\fR" 4
295 .IX Item "-msie_hack"
296 this is a legacy option to make \fBca\fR work with very old versions of
297 the \s-1IE\s0 certificate enrollment control \*(L"certenr3\*(R". It used UniversalStrings
298 for almost everything. Since the old control has various security bugs
299 its use is strongly discouraged. The newer control \*(L"Xenroll\*(R" does not
300 need this option.
301 .IP "\fB\-preserveDN\fR" 4
302 .IX Item "-preserveDN"
303 Normally the \s-1DN\s0 order of a certificate is the same as the order of the
304 fields in the relevant policy section. When this option is set the order
305 is the same as the request. This is largely for compatibility with the
306 older \s-1IE\s0 enrollment control which would only accept certificates if their
307 DNs match the order of the request. This is not needed for Xenroll.
308 .IP "\fB\-noemailDN\fR" 4
309 .IX Item "-noemailDN"
310 The \s-1DN\s0 of a certificate can contain the \s-1EMAIL\s0 field if present in the
311 request \s-1DN,\s0 however it is good policy just having the e\-mail set into
312 the altName extension of the certificate. When this option is set the
313 \&\s-1EMAIL\s0 field is removed from the certificate' subject and set only in
314 the, eventually present, extensions. The \fBemail_in_dn\fR keyword can be
315 used in the configuration file to enable this behaviour.
316 .IP "\fB\-batch\fR" 4
317 .IX Item "-batch"
318 this sets the batch mode. In this mode no questions will be asked
319 and all certificates will be certified automatically.
320 .IP "\fB\-extensions section\fR" 4
321 .IX Item "-extensions section"
322 the section of the configuration file containing certificate extensions
323 to be added when a certificate is issued (defaults to \fBx509_extensions\fR
324 unless the \fB\-extfile\fR option is used). If no extension section is
325 present then, a V1 certificate is created. If the extension section
326 is present (even if it is empty), then a V3 certificate is created. See the:w
327 \&\fIx509v3_config\fR\|(5) manual page for details of the
328 extension section format.
329 .IP "\fB\-extfile file\fR" 4
330 .IX Item "-extfile file"
331 an additional configuration file to read certificate extensions from
332 (using the default section unless the \fB\-extensions\fR option is also
333 used).
334 .IP "\fB\-engine id\fR" 4
335 .IX Item "-engine id"
336 specifying an engine (by its unique \fBid\fR string) will cause \fBca\fR
337 to attempt to obtain a functional reference to the specified engine,
338 thus initialising it if needed. The engine will then be set as the default
339 for all available algorithms.
340 .IP "\fB\-subj arg\fR" 4
341 .IX Item "-subj arg"
342 supersedes subject name given in the request.
343 The arg must be formatted as \fI/type0=value0/type1=value1/type2=...\fR,
344 characters may be escaped by \e (backslash), no spaces are skipped.
345 .IP "\fB\-utf8\fR" 4
346 .IX Item "-utf8"
347 this option causes field values to be interpreted as \s-1UTF8\s0 strings, by
348 default they are interpreted as \s-1ASCII.\s0 This means that the field
349 values, whether prompted from a terminal or obtained from a
350 configuration file, must be valid \s-1UTF8\s0 strings.
351 .IP "\fB\-multivalue\-rdn\fR" 4
352 .IX Item "-multivalue-rdn"
353 this option causes the \-subj argument to be interpretedt with full
354 support for multivalued RDNs. Example:
356 \&\fI/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe\fR
358 If \-multi\-rdn is not used then the \s-1UID\s0 value is \fI123456+CN=John Doe\fR.
359 .SH "CRL OPTIONS"
360 .IX Header "CRL OPTIONS"
361 .IP "\fB\-gencrl\fR" 4
362 .IX Item "-gencrl"
363 this option generates a \s-1CRL\s0 based on information in the index file.
364 .IP "\fB\-crldays num\fR" 4
365 .IX Item "-crldays num"
366 the number of days before the next \s-1CRL\s0 is due. That is the days from
367 now to place in the \s-1CRL\s0 nextUpdate field.
368 .IP "\fB\-crlhours num\fR" 4
369 .IX Item "-crlhours num"
370 the number of hours before the next \s-1CRL\s0 is due.
371 .IP "\fB\-revoke filename\fR" 4
372 .IX Item "-revoke filename"
373 a filename containing a certificate to revoke.
374 .IP "\fB\-status serial\fR" 4
375 .IX Item "-status serial"
376 displays the revocation status of the certificate with the specified
377 serial number and exits.
378 .IP "\fB\-updatedb\fR" 4
379 .IX Item "-updatedb"
380 Updates the database index to purge expired certificates.
381 .IP "\fB\-crl_reason reason\fR" 4
382 .IX Item "-crl_reason reason"
383 revocation reason, where \fBreason\fR is one of: \fBunspecified\fR, \fBkeyCompromise\fR,
384 \&\fBCACompromise\fR, \fBaffiliationChanged\fR, \fBsuperseded\fR, \fBcessationOfOperation\fR,
385 \&\fBcertificateHold\fR or \fBremoveFromCRL\fR. The matching of \fBreason\fR is case
386 insensitive. Setting any revocation reason will make the \s-1CRL\s0 v2.
388 In practive \fBremoveFromCRL\fR is not particularly useful because it is only used
389 in delta CRLs which are not currently implemented.
390 .IP "\fB\-crl_hold instruction\fR" 4
391 .IX Item "-crl_hold instruction"
392 This sets the \s-1CRL\s0 revocation reason code to \fBcertificateHold\fR and the hold
393 instruction to \fBinstruction\fR which must be an \s-1OID.\s0 Although any \s-1OID\s0 can be
394 used only \fBholdInstructionNone\fR (the use of which is discouraged by \s-1RFC2459\s0)
395 \&\fBholdInstructionCallIssuer\fR or \fBholdInstructionReject\fR will normally be used.
396 .IP "\fB\-crl_compromise time\fR" 4
397 .IX Item "-crl_compromise time"
398 This sets the revocation reason to \fBkeyCompromise\fR and the compromise time to
399 \&\fBtime\fR. \fBtime\fR should be in GeneralizedTime format that is \fB\s-1YYYYMMDDHHMMSSZ\s0\fR.
400 .IP "\fB\-crl_CA_compromise time\fR" 4
401 .IX Item "-crl_CA_compromise time"
402 This is the same as \fBcrl_compromise\fR except the revocation reason is set to
403 \&\fBCACompromise\fR.
404 .IP "\fB\-crlexts section\fR" 4
405 .IX Item "-crlexts section"
406 the section of the configuration file containing \s-1CRL\s0 extensions to
407 include. If no \s-1CRL\s0 extension section is present then a V1 \s-1CRL\s0 is
408 created, if the \s-1CRL\s0 extension section is present (even if it is
409 empty) then a V2 \s-1CRL\s0 is created. The \s-1CRL\s0 extensions specified are
410 \&\s-1CRL\s0 extensions and \fBnot\fR \s-1CRL\s0 entry extensions.  It should be noted
411 that some software (for example Netscape) can't handle V2 CRLs. See
412 \&\fIx509v3_config\fR\|(5) manual page for details of the
413 extension section format.
414 .SH "CONFIGURATION FILE OPTIONS"
415 .IX Header "CONFIGURATION FILE OPTIONS"
416 The section of the configuration file containing options for \fBca\fR
417 is found as follows: If the \fB\-name\fR command line option is used,
418 then it names the section to be used. Otherwise the section to
419 be used must be named in the \fBdefault_ca\fR option of the \fBca\fR section
420 of the configuration file (or in the default section of the
421 configuration file). Besides \fBdefault_ca\fR, the following options are
422 read directly from the \fBca\fR section:
423  \s-1RANDFILE
424 \&\s0 preserve
425  msie_hack
426 With the exception of \fB\s-1RANDFILE\s0\fR, this is probably a bug and may
427 change in future releases.
429 Many of the configuration file options are identical to command line
430 options. Where the option is present in the configuration file
431 and the command line the command line value is used. Where an
432 option is described as mandatory then it must be present in
433 the configuration file or the command line equivalent (if
434 any) used.
435 .IP "\fBoid_file\fR" 4
436 .IX Item "oid_file"
437 This specifies a file containing additional \fB\s-1OBJECT IDENTIFIERS\s0\fR.
438 Each line of the file should consist of the numerical form of the
439 object identifier followed by white space then the short name followed
440 by white space and finally the long name.
441 .IP "\fBoid_section\fR" 4
442 .IX Item "oid_section"
443 This specifies a section in the configuration file containing extra
444 object identifiers. Each line should consist of the short name of the
445 object identifier followed by \fB=\fR and the numerical form. The short
446 and long names are the same when this option is used.
447 .IP "\fBnew_certs_dir\fR" 4
448 .IX Item "new_certs_dir"
449 the same as the \fB\-outdir\fR command line option. It specifies
450 the directory where new certificates will be placed. Mandatory.
451 .IP "\fBcertificate\fR" 4
452 .IX Item "certificate"
453 the same as \fB\-cert\fR. It gives the file containing the \s-1CA\s0
454 certificate. Mandatory.
455 .IP "\fBprivate_key\fR" 4
456 .IX Item "private_key"
457 same as the \fB\-keyfile\fR option. The file containing the
458 \&\s-1CA\s0 private key. Mandatory.
459 .IP "\fB\s-1RANDFILE\s0\fR" 4
460 .IX Item "RANDFILE"
461 a file used to read and write random number seed information, or
462 an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)).
463 .IP "\fBdefault_days\fR" 4
464 .IX Item "default_days"
465 the same as the \fB\-days\fR option. The number of days to certify
466 a certificate for.
467 .IP "\fBdefault_startdate\fR" 4
468 .IX Item "default_startdate"
469 the same as the \fB\-startdate\fR option. The start date to certify
470 a certificate for. If not set the current time is used.
471 .IP "\fBdefault_enddate\fR" 4
472 .IX Item "default_enddate"
473 the same as the \fB\-enddate\fR option. Either this option or
474 \&\fBdefault_days\fR (or the command line equivalents) must be
475 present.
476 .IP "\fBdefault_crl_hours default_crl_days\fR" 4
477 .IX Item "default_crl_hours default_crl_days"
478 the same as the \fB\-crlhours\fR and the \fB\-crldays\fR options. These
479 will only be used if neither command line option is present. At
480 least one of these must be present to generate a \s-1CRL.\s0
481 .IP "\fBdefault_md\fR" 4
482 .IX Item "default_md"
483 the same as the \fB\-md\fR option. The message digest to use. Mandatory.
484 .IP "\fBdatabase\fR" 4
485 .IX Item "database"
486 the text database file to use. Mandatory. This file must be present
487 though initially it will be empty.
488 .IP "\fBunique_subject\fR" 4
489 .IX Item "unique_subject"
490 if the value \fByes\fR is given, the valid certificate entries in the
491 database must have unique subjects.  if the value \fBno\fR is given,
492 several valid certificate entries may have the exact same subject.
493 The default value is \fByes\fR, to be compatible with older (pre 0.9.8)
494 versions of OpenSSL.  However, to make \s-1CA\s0 certificate roll-over easier,
495 it's recommended to use the value \fBno\fR, especially if combined with
496 the \fB\-selfsign\fR command line option.
497 .IP "\fBserial\fR" 4
498 .IX Item "serial"
499 a text file containing the next serial number to use in hex. Mandatory.
500 This file must be present and contain a valid serial number.
501 .IP "\fBcrlnumber\fR" 4
502 .IX Item "crlnumber"
503 a text file containing the next \s-1CRL\s0 number to use in hex. The crl number
504 will be inserted in the CRLs only if this file exists. If this file is
505 present, it must contain a valid \s-1CRL\s0 number.
506 .IP "\fBx509_extensions\fR" 4
507 .IX Item "x509_extensions"
508 the same as \fB\-extensions\fR.
509 .IP "\fBcrl_extensions\fR" 4
510 .IX Item "crl_extensions"
511 the same as \fB\-crlexts\fR.
512 .IP "\fBpreserve\fR" 4
513 .IX Item "preserve"
514 the same as \fB\-preserveDN\fR
515 .IP "\fBemail_in_dn\fR" 4
516 .IX Item "email_in_dn"
517 the same as \fB\-noemailDN\fR. If you want the \s-1EMAIL\s0 field to be removed
518 from the \s-1DN\s0 of the certificate simply set this to 'no'. If not present
519 the default is to allow for the \s-1EMAIL\s0 filed in the certificate's \s-1DN.\s0
520 .IP "\fBmsie_hack\fR" 4
521 .IX Item "msie_hack"
522 the same as \fB\-msie_hack\fR
523 .IP "\fBpolicy\fR" 4
524 .IX Item "policy"
525 the same as \fB\-policy\fR. Mandatory. See the \fB\s-1POLICY FORMAT\s0\fR section
526 for more information.
527 .IP "\fBname_opt\fR, \fBcert_opt\fR" 4
528 .IX Item "name_opt, cert_opt"
529 these options allow the format used to display the certificate details
530 when asking the user to confirm signing. All the options supported by
531 the \fBx509\fR utilities \fB\-nameopt\fR and \fB\-certopt\fR switches can be used
532 here, except the \fBno_signame\fR and \fBno_sigdump\fR are permanently set
533 and cannot be disabled (this is because the certificate signature cannot
534 be displayed because the certificate has not been signed at this point).
536 For convenience the values \fBca_default\fR are accepted by both to produce
537 a reasonable output.
539 If neither option is present the format used in earlier versions of
540 OpenSSL is used. Use of the old format is \fBstrongly\fR discouraged because
541 it only displays fields mentioned in the \fBpolicy\fR section, mishandles
542 multicharacter string types and does not display extensions.
543 .IP "\fBcopy_extensions\fR" 4
544 .IX Item "copy_extensions"
545 determines how extensions in certificate requests should be handled.
546 If set to \fBnone\fR or this option is not present then extensions are
547 ignored and not copied to the certificate. If set to \fBcopy\fR then any
548 extensions present in the request that are not already present are copied
549 to the certificate. If set to \fBcopyall\fR then all extensions in the
550 request are copied to the certificate: if the extension is already present
551 in the certificate it is deleted first. See the \fB\s-1WARNINGS\s0\fR section before
552 using this option.
554 The main use of this option is to allow a certificate request to supply
555 values for certain extensions such as subjectAltName.
556 .SH "POLICY FORMAT"
557 .IX Header "POLICY FORMAT"
558 The policy section consists of a set of variables corresponding to
559 certificate \s-1DN\s0 fields. If the value is \*(L"match\*(R" then the field value
560 must match the same field in the \s-1CA\s0 certificate. If the value is
561 \&\*(L"supplied\*(R" then it must be present. If the value is \*(L"optional\*(R" then
562 it may be present. Any fields not mentioned in the policy section
563 are silently deleted, unless the \fB\-preserveDN\fR option is set but
564 this can be regarded more of a quirk than intended behaviour.
565 .SH "SPKAC FORMAT"
566 .IX Header "SPKAC FORMAT"
567 The input to the \fB\-spkac\fR command line option is a Netscape
568 signed public key and challenge. This will usually come from
569 the \fB\s-1KEYGEN\s0\fR tag in an \s-1HTML\s0 form to create a new private key.
570 It is however possible to create SPKACs using the \fBspkac\fR utility.
572 The file should contain the variable \s-1SPKAC\s0 set to the value of
573 the \s-1SPKAC\s0 and also the required \s-1DN\s0 components as name value pairs.
574 If you need to include the same component twice then it can be
575 preceded by a number and a '.'.
577 When processing \s-1SPKAC\s0 format, the output is \s-1DER\s0 if the \fB\-out\fR
578 flag is used, but \s-1PEM\s0 format if sending to stdout or the \fB\-outdir\fR
579 flag is used.
580 .SH "EXAMPLES"
581 .IX Header "EXAMPLES"
582 Note: these examples assume that the \fBca\fR directory structure is
583 already set up and the relevant files already exist. This usually
584 involves creating a \s-1CA\s0 certificate and private key with \fBreq\fR, a
585 serial number file and an empty index file and placing them in
586 the relevant directories.
588 To use the sample configuration file below the directories demoCA,
589 demoCA/private and demoCA/newcerts would be created. The \s-1CA\s0
590 certificate would be copied to demoCA/cacert.pem and its private
591 key to demoCA/private/cakey.pem. A file demoCA/serial would be
592 created containing for example \*(L"01\*(R" and the empty index file
593 demoCA/index.txt.
595 Sign a certificate request:
597 .Vb 1
598 \& openssl ca \-in req.pem \-out newcert.pem
601 Sign a certificate request, using \s-1CA\s0 extensions:
603 .Vb 1
604 \& openssl ca \-in req.pem \-extensions v3_ca \-out newcert.pem
607 Generate a \s-1CRL\s0
609 .Vb 1
610 \& openssl ca \-gencrl \-out crl.pem
613 Sign several requests:
615 .Vb 1
616 \& openssl ca \-infiles req1.pem req2.pem req3.pem
619 Certify a Netscape \s-1SPKAC:\s0
621 .Vb 1
622 \& openssl ca \-spkac spkac.txt
625 A sample \s-1SPKAC\s0 file (the \s-1SPKAC\s0 line has been truncated for clarity):
627 .Vb 5
628 \& SPKAC=MIG0MGAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAn7PDhCeV/xIxUg8V70YRxK2A5
629 \& CN=Steve Test
630 \& emailAddress=steve@openssl.org
631 \& 0.OU=OpenSSL Group
632 \& 1.OU=Another Group
635 A sample configuration file with the relevant sections for \fBca\fR:
637 .Vb 2
638 \& [ ca ]
639 \& default_ca      = CA_default            # The default ca section
641 \& [ CA_default ]
643 \& dir            = ./demoCA              # top dir
644 \& database       = $dir/index.txt        # index file.
645 \& new_certs_dir  = $dir/newcerts         # new certs dir
647 \& certificate    = $dir/cacert.pem       # The CA cert
648 \& serial         = $dir/serial           # serial no file
649 \& private_key    = $dir/private/cakey.pem# CA private key
650 \& RANDFILE       = $dir/private/.rand    # random number file
652 \& default_days   = 365                   # how long to certify for
653 \& default_crl_days= 30                   # how long before next CRL
654 \& default_md     = md5                   # md to use
656 \& policy         = policy_any            # default policy
657 \& email_in_dn    = no                    # Don\*(Aqt add the email into cert DN
659 \& name_opt       = ca_default            # Subject name display option
660 \& cert_opt       = ca_default            # Certificate display option
661 \& copy_extensions = none                 # Don\*(Aqt copy extensions from request
663 \& [ policy_any ]
664 \& countryName            = supplied
665 \& stateOrProvinceName    = optional
666 \& organizationName       = optional
667 \& organizationalUnitName = optional
668 \& commonName             = supplied
669 \& emailAddress           = optional
671 .SH "FILES"
672 .IX Header "FILES"
673 Note: the location of all files can change either by compile time options,
674 configuration file entries, environment variables or command line options.
675 The values below reflect the default values.
677 .Vb 10
678 \& /etc/openssl/openssl.cnf       \- master configuration file
679 \& ./demoCA                       \- main CA directory
680 \& ./demoCA/cacert.pem            \- CA certificate
681 \& ./demoCA/private/cakey.pem     \- CA private key
682 \& ./demoCA/serial                \- CA serial number file
683 \& ./demoCA/serial.old            \- CA serial number backup file
684 \& ./demoCA/index.txt             \- CA text database file
685 \& ./demoCA/index.txt.old         \- CA text database backup file
686 \& ./demoCA/certs                 \- certificate output file
687 \& ./demoCA/.rnd                  \- CA random seed information
689 .SH "ENVIRONMENT VARIABLES"
690 .IX Header "ENVIRONMENT VARIABLES"
691 \&\fB\s-1OPENSSL_CONF\s0\fR reflects the location of master configuration file it can
692 be overridden by the \fB\-config\fR command line option.
693 .SH "RESTRICTIONS"
694 .IX Header "RESTRICTIONS"
695 The text database index file is a critical part of the process and
696 if corrupted it can be difficult to fix. It is theoretically possible
697 to rebuild the index file from all the issued certificates and a current
698 \&\s-1CRL:\s0 however there is no option to do this.
700 V2 \s-1CRL\s0 features like delta CRLs are not currently supported.
702 Although several requests can be input and handled at once it is only
703 possible to include one \s-1SPKAC\s0 or self signed certificate.
704 .SH "BUGS"
705 .IX Header "BUGS"
706 The use of an in memory text database can cause problems when large
707 numbers of certificates are present because, as the name implies
708 the database has to be kept in memory.
710 The \fBca\fR command really needs rewriting or the required functionality
711 exposed at either a command or interface level so a more friendly utility
712 (perl script or \s-1GUI\s0) can handle things properly. The scripts \fB\s-1CA\s0.sh\fR and
713 \&\fB\s-1CA\s0.pl\fR help a little but not very much.
715 Any fields in a request that are not present in a policy are silently
716 deleted. This does not happen if the \fB\-preserveDN\fR option is used. To
717 enforce the absence of the \s-1EMAIL\s0 field within the \s-1DN,\s0 as suggested by
718 RFCs, regardless the contents of the request' subject the \fB\-noemailDN\fR
719 option can be used. The behaviour should be more friendly and
720 configurable.
722 Cancelling some commands by refusing to certify a certificate can
723 create an empty file.
724 .SH "WARNINGS"
725 .IX Header "WARNINGS"
726 The \fBca\fR command is quirky and at times downright unfriendly.
728 The \fBca\fR utility was originally meant as an example of how to do things
729 in a \s-1CA.\s0 It was not supposed to be used as a full blown \s-1CA\s0 itself:
730 nevertheless some people are using it for this purpose.
732 The \fBca\fR command is effectively a single user command: no locking is
733 done on the various files and attempts to run more than one \fBca\fR command
734 on the same database can have unpredictable results.
736 The \fBcopy_extensions\fR option should be used with caution. If care is
737 not taken then it can be a security risk. For example if a certificate
738 request contains a basicConstraints extension with \s-1CA:TRUE\s0 and the
739 \&\fBcopy_extensions\fR value is set to \fBcopyall\fR and the user does not spot
740 this when the certificate is displayed then this will hand the requestor
741 a valid \s-1CA\s0 certificate.
743 This situation can be avoided by setting \fBcopy_extensions\fR to \fBcopy\fR
744 and including basicConstraints with \s-1CA:FALSE\s0 in the configuration file.
745 Then if the request contains a basicConstraints extension it will be
746 ignored.
748 It is advisable to also include values for other extensions such
749 as \fBkeyUsage\fR to prevent a request supplying its own values.
751 Additional restrictions can be placed on the \s-1CA\s0 certificate itself.
752 For example if the \s-1CA\s0 certificate has:
754 .Vb 1
755 \& basicConstraints = CA:TRUE, pathlen:0
758 then even if a certificate is issued with \s-1CA:TRUE\s0 it will not be valid.
759 .SH "SEE ALSO"
760 .IX Header "SEE ALSO"
761 \&\fIopenssl_req\fR\|(1), \fIopenssl_spkac\fR\|(1), \fIopenssl_x509\fR\|(1), \s-1\fICA\s0.pl\fR\|(1),
762 \&\fIopenssl.cnf\fR\|(5), \fIx509v3_config\fR\|(5)