]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/usr.bin/openssl/man/req.1
MFV r353141 (by phillip):
[FreeBSD/FreeBSD.git] / secure / usr.bin / openssl / man / req.1
1 .\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.39)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 .    ds C`
42 .    ds C'
43 'br\}
44 .\"
45 .\" Escape single quotes in literal strings from groff's Unicode transform.
46 .ie \n(.g .ds Aq \(aq
47 .el       .ds Aq '
48 .\"
49 .\" If the F register is >0, we'll generate index entries on stderr for
50 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51 .\" entries marked with X<> in POD.  Of course, you'll have to process the
52 .\" output yourself in some meaningful fashion.
53 .\"
54 .\" Avoid warning from groff about undefined register 'F'.
55 .de IX
56 ..
57 .nr rF 0
58 .if \n(.g .if rF .nr rF 1
59 .if (\n(rF:(\n(.g==0)) \{\
60 .    if \nF \{\
61 .        de IX
62 .        tm Index:\\$1\t\\n%\t"\\$2"
63 ..
64 .        if !\nF==2 \{\
65 .            nr % 0
66 .            nr F 2
67 .        \}
68 .    \}
69 .\}
70 .rr rF
71 .\"
72 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
73 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
74 .    \" fudge factors for nroff and troff
75 .if n \{\
76 .    ds #H 0
77 .    ds #V .8m
78 .    ds #F .3m
79 .    ds #[ \f1
80 .    ds #] \fP
81 .\}
82 .if t \{\
83 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
84 .    ds #V .6m
85 .    ds #F 0
86 .    ds #[ \&
87 .    ds #] \&
88 .\}
89 .    \" simple accents for nroff and troff
90 .if n \{\
91 .    ds ' \&
92 .    ds ` \&
93 .    ds ^ \&
94 .    ds , \&
95 .    ds ~ ~
96 .    ds /
97 .\}
98 .if t \{\
99 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
100 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
101 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
102 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
103 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
104 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
105 .\}
106 .    \" troff and (daisy-wheel) nroff accents
107 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
108 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
109 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
110 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
111 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
112 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
113 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
114 .ds ae a\h'-(\w'a'u*4/10)'e
115 .ds Ae A\h'-(\w'A'u*4/10)'E
116 .    \" corrections for vroff
117 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
118 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
119 .    \" for low resolution devices (crt and lpr)
120 .if \n(.H>23 .if \n(.V>19 \
121 \{\
122 .    ds : e
123 .    ds 8 ss
124 .    ds o a
125 .    ds d- d\h'-1'\(ga
126 .    ds D- D\h'-1'\(hy
127 .    ds th \o'bp'
128 .    ds Th \o'LP'
129 .    ds ae ae
130 .    ds Ae AE
131 .\}
132 .rm #[ #] #H #V #F C
133 .\" ========================================================================
134 .\"
135 .IX Title "REQ 1"
136 .TH REQ 1 "2019-09-10" "1.1.1d" "OpenSSL"
137 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
138 .\" way too many mistakes in technical documents.
139 .if n .ad l
140 .nh
141 .SH "NAME"
142 openssl\-req, req \- PKCS#10 certificate request and certificate generating utility
143 .SH "SYNOPSIS"
144 .IX Header "SYNOPSIS"
145 \&\fBopenssl\fR \fBreq\fR
146 [\fB\-help\fR]
147 [\fB\-inform PEM|DER\fR]
148 [\fB\-outform PEM|DER\fR]
149 [\fB\-in filename\fR]
150 [\fB\-passin arg\fR]
151 [\fB\-out filename\fR]
152 [\fB\-passout arg\fR]
153 [\fB\-text\fR]
154 [\fB\-pubkey\fR]
155 [\fB\-noout\fR]
156 [\fB\-verify\fR]
157 [\fB\-modulus\fR]
158 [\fB\-new\fR]
159 [\fB\-rand file...\fR]
160 [\fB\-writerand file\fR]
161 [\fB\-newkey rsa:bits\fR]
162 [\fB\-newkey alg:file\fR]
163 [\fB\-nodes\fR]
164 [\fB\-key filename\fR]
165 [\fB\-keyform PEM|DER\fR]
166 [\fB\-keyout filename\fR]
167 [\fB\-keygen_engine id\fR]
168 [\fB\-\f(BIdigest\fB\fR]
169 [\fB\-config filename\fR]
170 [\fB\-multivalue\-rdn\fR]
171 [\fB\-x509\fR]
172 [\fB\-days n\fR]
173 [\fB\-set_serial n\fR]
174 [\fB\-newhdr\fR]
175 [\fB\-addext ext\fR]
176 [\fB\-extensions section\fR]
177 [\fB\-reqexts section\fR]
178 [\fB\-precert\fR]
179 [\fB\-utf8\fR]
180 [\fB\-nameopt\fR]
181 [\fB\-reqopt\fR]
182 [\fB\-subject\fR]
183 [\fB\-subj arg\fR]
184 [\fB\-batch\fR]
185 [\fB\-verbose\fR]
186 [\fB\-engine id\fR]
187 .SH "DESCRIPTION"
188 .IX Header "DESCRIPTION"
189 The \fBreq\fR command primarily creates and processes certificate requests
190 in PKCS#10 format. It can additionally create self signed certificates
191 for use as root CAs for example.
192 .SH "OPTIONS"
193 .IX Header "OPTIONS"
194 .IP "\fB\-help\fR" 4
195 .IX Item "-help"
196 Print out a usage message.
197 .IP "\fB\-inform DER|PEM\fR" 4
198 .IX Item "-inform DER|PEM"
199 This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded
200 form compatible with the PKCS#10. The \fB\s-1PEM\s0\fR form is the default format: it
201 consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and
202 footer lines.
203 .IP "\fB\-outform DER|PEM\fR" 4
204 .IX Item "-outform DER|PEM"
205 This specifies the output format, the options have the same meaning and default
206 as the \fB\-inform\fR option.
207 .IP "\fB\-in filename\fR" 4
208 .IX Item "-in filename"
209 This specifies the input filename to read a request from or standard input
210 if this option is not specified. A request is only read if the creation
211 options (\fB\-new\fR and \fB\-newkey\fR) are not specified.
212 .IP "\fB\-passin arg\fR" 4
213 .IX Item "-passin arg"
214 The input file password source. For more information about the format of \fBarg\fR
215 see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fBopenssl\fR\|(1).
216 .IP "\fB\-out filename\fR" 4
217 .IX Item "-out filename"
218 This specifies the output filename to write to or standard output by
219 default.
220 .IP "\fB\-passout arg\fR" 4
221 .IX Item "-passout arg"
222 The output file password source. For more information about the format of \fBarg\fR
223 see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fBopenssl\fR\|(1).
224 .IP "\fB\-text\fR" 4
225 .IX Item "-text"
226 Prints out the certificate request in text form.
227 .IP "\fB\-subject\fR" 4
228 .IX Item "-subject"
229 Prints out the request subject (or certificate subject if \fB\-x509\fR is
230 specified)
231 .IP "\fB\-pubkey\fR" 4
232 .IX Item "-pubkey"
233 Outputs the public key.
234 .IP "\fB\-noout\fR" 4
235 .IX Item "-noout"
236 This option prevents output of the encoded version of the request.
237 .IP "\fB\-modulus\fR" 4
238 .IX Item "-modulus"
239 This option prints out the value of the modulus of the public key
240 contained in the request.
241 .IP "\fB\-verify\fR" 4
242 .IX Item "-verify"
243 Verifies the signature on the request.
244 .IP "\fB\-new\fR" 4
245 .IX Item "-new"
246 This option generates a new certificate request. It will prompt
247 the user for the relevant field values. The actual fields
248 prompted for and their maximum and minimum sizes are specified
249 in the configuration file and any requested extensions.
250 .Sp
251 If the \fB\-key\fR option is not used it will generate a new \s-1RSA\s0 private
252 key using information specified in the configuration file.
253 .IP "\fB\-rand file...\fR" 4
254 .IX Item "-rand file..."
255 A file or files containing random data used to seed the random number
256 generator.
257 Multiple files can be specified separated by an OS-dependent character.
258 The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for
259 all others.
260 .IP "[\fB\-writerand file\fR]" 4
261 .IX Item "[-writerand file]"
262 Writes random data to the specified \fIfile\fR upon exit.
263 This can be used with a subsequent \fB\-rand\fR flag.
264 .IP "\fB\-newkey arg\fR" 4
265 .IX Item "-newkey arg"
266 This option creates a new certificate request and a new private
267 key. The argument takes one of several forms. \fBrsa:nbits\fR, where
268 \&\fBnbits\fR is the number of bits, generates an \s-1RSA\s0 key \fBnbits\fR
269 in size. If \fBnbits\fR is omitted, i.e. \fB\-newkey rsa\fR specified,
270 the default key size, specified in the configuration file is used.
271 .Sp
272 All other algorithms support the \fB\-newkey alg:file\fR form, where file may be
273 an algorithm parameter file, created by the \fBgenpkey \-genparam\fR command
274 or and X.509 certificate for a key with appropriate algorithm.
275 .Sp
276 \&\fBparam:file\fR generates a key using the parameter file or certificate \fBfile\fR,
277 the algorithm is determined by the parameters. \fBalgname:file\fR use algorithm
278 \&\fBalgname\fR and parameter file \fBfile\fR: the two algorithms must match or an
279 error occurs. \fBalgname\fR just uses algorithm \fBalgname\fR, and parameters,
280 if necessary should be specified via \fB\-pkeyopt\fR parameter.
281 .Sp
282 \&\fBdsa:filename\fR generates a \s-1DSA\s0 key using the parameters
283 in the file \fBfilename\fR. \fBec:filename\fR generates \s-1EC\s0 key (usable both with
284 \&\s-1ECDSA\s0 or \s-1ECDH\s0 algorithms), \fBgost2001:filename\fR generates \s-1GOST R
285 34.10\-2001\s0 key (requires \fBccgost\fR engine configured in the configuration
286 file). If just \fBgost2001\fR is specified a parameter set should be
287 specified by \fB\-pkeyopt paramset:X\fR
288 .IP "\fB\-pkeyopt opt:value\fR" 4
289 .IX Item "-pkeyopt opt:value"
290 Set the public key algorithm option \fBopt\fR to \fBvalue\fR. The precise set of
291 options supported depends on the public key algorithm used and its
292 implementation. See \fB\s-1KEY GENERATION OPTIONS\s0\fR in the \fBgenpkey\fR manual page
293 for more details.
294 .IP "\fB\-key filename\fR" 4
295 .IX Item "-key filename"
296 This specifies the file to read the private key from. It also
297 accepts PKCS#8 format private keys for \s-1PEM\s0 format files.
298 .IP "\fB\-keyform PEM|DER\fR" 4
299 .IX Item "-keyform PEM|DER"
300 The format of the private key file specified in the \fB\-key\fR
301 argument. \s-1PEM\s0 is the default.
302 .IP "\fB\-keyout filename\fR" 4
303 .IX Item "-keyout filename"
304 This gives the filename to write the newly created private key to.
305 If this option is not specified then the filename present in the
306 configuration file is used.
307 .IP "\fB\-nodes\fR" 4
308 .IX Item "-nodes"
309 If this option is specified then if a private key is created it
310 will not be encrypted.
311 .IP "\fB\-\f(BIdigest\fB\fR" 4
312 .IX Item "-digest"
313 This specifies the message digest to sign the request.
314 Any digest supported by the OpenSSL \fBdgst\fR command can be used.
315 This overrides the digest algorithm specified in
316 the configuration file.
317 .Sp
318 Some public key algorithms may override this choice. For instance, \s-1DSA\s0
319 signatures always use \s-1SHA1, GOST R 34.10\s0 signatures always use
320 \&\s-1GOST R 34.11\-94\s0 (\fB\-md_gost94\fR), Ed25519 and Ed448 never use any digest.
321 .IP "\fB\-config filename\fR" 4
322 .IX Item "-config filename"
323 This allows an alternative configuration file to be specified.
324 Optional; for a description of the default value,
325 see \*(L"\s-1COMMAND SUMMARY\*(R"\s0 in \fBopenssl\fR\|(1).
326 .IP "\fB\-subj arg\fR" 4
327 .IX Item "-subj arg"
328 Sets subject name for new request or supersedes the subject name
329 when processing a request.
330 The arg must be formatted as \fI/type0=value0/type1=value1/type2=...\fR.
331 Keyword characters may be escaped by \e (backslash), and whitespace is retained.
332 Empty values are permitted, but the corresponding type will not be included
333 in the request.
334 .IP "\fB\-multivalue\-rdn\fR" 4
335 .IX Item "-multivalue-rdn"
336 This option causes the \-subj argument to be interpreted with full
337 support for multivalued RDNs. Example:
338 .Sp
339 \&\fI/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe\fR
340 .Sp
341 If \-multi\-rdn is not used then the \s-1UID\s0 value is \fI123456+CN=John Doe\fR.
342 .IP "\fB\-x509\fR" 4
343 .IX Item "-x509"
344 This option outputs a self signed certificate instead of a certificate
345 request. This is typically used to generate a test certificate or
346 a self signed root \s-1CA.\s0 The extensions added to the certificate
347 (if any) are specified in the configuration file. Unless specified
348 using the \fBset_serial\fR option, a large random number will be used for
349 the serial number.
350 .Sp
351 If existing request is specified with the \fB\-in\fR option, it is converted
352 to the self signed certificate otherwise new request is created.
353 .IP "\fB\-days n\fR" 4
354 .IX Item "-days n"
355 When the \fB\-x509\fR option is being used this specifies the number of
356 days to certify the certificate for, otherwise it is ignored. \fBn\fR should
357 be a positive integer. The default is 30 days.
358 .IP "\fB\-set_serial n\fR" 4
359 .IX Item "-set_serial n"
360 Serial number to use when outputting a self signed certificate. This
361 may be specified as a decimal value or a hex value if preceded by \fB0x\fR.
362 .IP "\fB\-addext ext\fR" 4
363 .IX Item "-addext ext"
364 Add a specific extension to the certificate (if the \fB\-x509\fR option is
365 present) or certificate request.  The argument must have the form of
366 a key=value pair as it would appear in a config file.
367 .Sp
368 This option can be given multiple times.
369 .IP "\fB\-extensions section\fR" 4
370 .IX Item "-extensions section"
371 .PD 0
372 .IP "\fB\-reqexts section\fR" 4
373 .IX Item "-reqexts section"
374 .PD
375 These options specify alternative sections to include certificate
376 extensions (if the \fB\-x509\fR option is present) or certificate
377 request extensions. This allows several different sections to
378 be used in the same configuration file to specify requests for
379 a variety of purposes.
380 .IP "\fB\-precert\fR" 4
381 .IX Item "-precert"
382 A poison extension will be added to the certificate, making it a
383 \&\*(L"pre-certificate\*(R" (see \s-1RFC6962\s0). This can be submitted to Certificate
384 Transparency logs in order to obtain signed certificate timestamps (SCTs).
385 These SCTs can then be embedded into the pre-certificate as an extension, before
386 removing the poison and signing the certificate.
387 .Sp
388 This implies the \fB\-new\fR flag.
389 .IP "\fB\-utf8\fR" 4
390 .IX Item "-utf8"
391 This option causes field values to be interpreted as \s-1UTF8\s0 strings, by
392 default they are interpreted as \s-1ASCII.\s0 This means that the field
393 values, whether prompted from a terminal or obtained from a
394 configuration file, must be valid \s-1UTF8\s0 strings.
395 .IP "\fB\-nameopt option\fR" 4
396 .IX Item "-nameopt option"
397 Option which determines how the subject or issuer names are displayed. The
398 \&\fBoption\fR argument can be a single option or multiple options separated by
399 commas.  Alternatively the \fB\-nameopt\fR switch may be used more than once to
400 set multiple options. See the \fBx509\fR\|(1) manual page for details.
401 .IP "\fB\-reqopt\fR" 4
402 .IX Item "-reqopt"
403 Customise the output format used with \fB\-text\fR. The \fBoption\fR argument can be
404 a single option or multiple options separated by commas.
405 .Sp
406 See discussion of the  \fB\-certopt\fR parameter in the \fBx509\fR\|(1)
407 command.
408 .IP "\fB\-newhdr\fR" 4
409 .IX Item "-newhdr"
410 Adds the word \fB\s-1NEW\s0\fR to the \s-1PEM\s0 file header and footer lines on the outputted
411 request. Some software (Netscape certificate server) and some CAs need this.
412 .IP "\fB\-batch\fR" 4
413 .IX Item "-batch"
414 Non-interactive mode.
415 .IP "\fB\-verbose\fR" 4
416 .IX Item "-verbose"
417 Print extra details about the operations being performed.
418 .IP "\fB\-engine id\fR" 4
419 .IX Item "-engine id"
420 Specifying an engine (by its unique \fBid\fR string) will cause \fBreq\fR
421 to attempt to obtain a functional reference to the specified engine,
422 thus initialising it if needed. The engine will then be set as the default
423 for all available algorithms.
424 .IP "\fB\-keygen_engine id\fR" 4
425 .IX Item "-keygen_engine id"
426 Specifies an engine (by its unique \fBid\fR string) which would be used
427 for key generation operations.
428 .SH "CONFIGURATION FILE FORMAT"
429 .IX Header "CONFIGURATION FILE FORMAT"
430 The configuration options are specified in the \fBreq\fR section of
431 the configuration file. As with all configuration files if no
432 value is specified in the specific section (i.e. \fBreq\fR) then
433 the initial unnamed or \fBdefault\fR section is searched too.
434 .PP
435 The options available are described in detail below.
436 .IP "\fBinput_password output_password\fR" 4
437 .IX Item "input_password output_password"
438 The passwords for the input private key file (if present) and
439 the output private key file (if one will be created). The
440 command line options \fBpassin\fR and \fBpassout\fR override the
441 configuration file values.
442 .IP "\fBdefault_bits\fR" 4
443 .IX Item "default_bits"
444 Specifies the default key size in bits.
445 .Sp
446 This option is used in conjunction with the \fB\-new\fR option to generate
447 a new key. It can be overridden by specifying an explicit key size in
448 the \fB\-newkey\fR option. The smallest accepted key size is 512 bits. If
449 no key size is specified then 2048 bits is used.
450 .IP "\fBdefault_keyfile\fR" 4
451 .IX Item "default_keyfile"
452 This is the default filename to write a private key to. If not
453 specified the key is written to standard output. This can be
454 overridden by the \fB\-keyout\fR option.
455 .IP "\fBoid_file\fR" 4
456 .IX Item "oid_file"
457 This specifies a file containing additional \fB\s-1OBJECT IDENTIFIERS\s0\fR.
458 Each line of the file should consist of the numerical form of the
459 object identifier followed by white space then the short name followed
460 by white space and finally the long name.
461 .IP "\fBoid_section\fR" 4
462 .IX Item "oid_section"
463 This specifies a section in the configuration file containing extra
464 object identifiers. Each line should consist of the short name of the
465 object identifier followed by \fB=\fR and the numerical form. The short
466 and long names are the same when this option is used.
467 .IP "\fB\s-1RANDFILE\s0\fR" 4
468 .IX Item "RANDFILE"
469 At startup the specified file is loaded into the random number generator,
470 and at exit 256 bytes will be written to it.
471 It is used for private key generation.
472 .IP "\fBencrypt_key\fR" 4
473 .IX Item "encrypt_key"
474 If this is set to \fBno\fR then if a private key is generated it is
475 \&\fBnot\fR encrypted. This is equivalent to the \fB\-nodes\fR command line
476 option. For compatibility \fBencrypt_rsa_key\fR is an equivalent option.
477 .IP "\fBdefault_md\fR" 4
478 .IX Item "default_md"
479 This option specifies the digest algorithm to use. Any digest supported by the
480 OpenSSL \fBdgst\fR command can be used. This option can be overridden on the
481 command line. Certain signing algorithms (i.e. Ed25519 and Ed448) will ignore
482 any digest that has been set.
483 .IP "\fBstring_mask\fR" 4
484 .IX Item "string_mask"
485 This option masks out the use of certain string types in certain
486 fields. Most users will not need to change this option.
487 .Sp
488 It can be set to several values \fBdefault\fR which is also the default
489 option uses PrintableStrings, T61Strings and BMPStrings if the
490 \&\fBpkix\fR value is used then only PrintableStrings and BMPStrings will
491 be used. This follows the \s-1PKIX\s0 recommendation in \s-1RFC2459.\s0 If the
492 \&\fButf8only\fR option is used then only UTF8Strings will be used: this
493 is the \s-1PKIX\s0 recommendation in \s-1RFC2459\s0 after 2003. Finally the \fBnombstr\fR
494 option just uses PrintableStrings and T61Strings: certain software has
495 problems with BMPStrings and UTF8Strings: in particular Netscape.
496 .IP "\fBreq_extensions\fR" 4
497 .IX Item "req_extensions"
498 This specifies the configuration file section containing a list of
499 extensions to add to the certificate request. It can be overridden
500 by the \fB\-reqexts\fR command line switch. See the
501 \&\fBx509v3_config\fR\|(5) manual page for details of the
502 extension section format.
503 .IP "\fBx509_extensions\fR" 4
504 .IX Item "x509_extensions"
505 This specifies the configuration file section containing a list of
506 extensions to add to certificate generated when the \fB\-x509\fR switch
507 is used. It can be overridden by the \fB\-extensions\fR command line switch.
508 .IP "\fBprompt\fR" 4
509 .IX Item "prompt"
510 If set to the value \fBno\fR this disables prompting of certificate fields
511 and just takes values from the config file directly. It also changes the
512 expected format of the \fBdistinguished_name\fR and \fBattributes\fR sections.
513 .IP "\fButf8\fR" 4
514 .IX Item "utf8"
515 If set to the value \fByes\fR then field values to be interpreted as \s-1UTF8\s0
516 strings, by default they are interpreted as \s-1ASCII.\s0 This means that
517 the field values, whether prompted from a terminal or obtained from a
518 configuration file, must be valid \s-1UTF8\s0 strings.
519 .IP "\fBattributes\fR" 4
520 .IX Item "attributes"
521 This specifies the section containing any request attributes: its format
522 is the same as \fBdistinguished_name\fR. Typically these may contain the
523 challengePassword or unstructuredName types. They are currently ignored
524 by OpenSSL's request signing utilities but some CAs might want them.
525 .IP "\fBdistinguished_name\fR" 4
526 .IX Item "distinguished_name"
527 This specifies the section containing the distinguished name fields to
528 prompt for when generating a certificate or certificate request. The format
529 is described in the next section.
530 .SH "DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT"
531 .IX Header "DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT"
532 There are two separate formats for the distinguished name and attribute
533 sections. If the \fBprompt\fR option is set to \fBno\fR then these sections
534 just consist of field names and values: for example,
535 .PP
536 .Vb 3
537 \& CN=My Name
538 \& OU=My Organization
539 \& emailAddress=someone@somewhere.org
540 .Ve
541 .PP
542 This allows external programs (e.g. \s-1GUI\s0 based) to generate a template file
543 with all the field names and values and just pass it to \fBreq\fR. An example
544 of this kind of configuration file is contained in the \fB\s-1EXAMPLES\s0\fR section.
545 .PP
546 Alternatively if the \fBprompt\fR option is absent or not set to \fBno\fR then the
547 file contains field prompting information. It consists of lines of the form:
548 .PP
549 .Vb 4
550 \& fieldName="prompt"
551 \& fieldName_default="default field value"
552 \& fieldName_min= 2
553 \& fieldName_max= 4
554 .Ve
555 .PP
556 \&\*(L"fieldName\*(R" is the field name being used, for example commonName (or \s-1CN\s0).
557 The \*(L"prompt\*(R" string is used to ask the user to enter the relevant
558 details. If the user enters nothing then the default value is used if no
559 default value is present then the field is omitted. A field can
560 still be omitted if a default value is present if the user just
561 enters the '.' character.
562 .PP
563 The number of characters entered must be between the fieldName_min and
564 fieldName_max limits: there may be additional restrictions based
565 on the field being used (for example countryName can only ever be
566 two characters long and must fit in a PrintableString).
567 .PP
568 Some fields (such as organizationName) can be used more than once
569 in a \s-1DN.\s0 This presents a problem because configuration files will
570 not recognize the same name occurring twice. To avoid this problem
571 if the fieldName contains some characters followed by a full stop
572 they will be ignored. So for example a second organizationName can
573 be input by calling it \*(L"1.organizationName\*(R".
574 .PP
575 The actual permitted field names are any object identifier short or
576 long names. These are compiled into OpenSSL and include the usual
577 values such as commonName, countryName, localityName, organizationName,
578 organizationalUnitName, stateOrProvinceName. Additionally emailAddress
579 is included as well as name, surname, givenName, initials, and dnQualifier.
580 .PP
581 Additional object identifiers can be defined with the \fBoid_file\fR or
582 \&\fBoid_section\fR options in the configuration file. Any additional fields
583 will be treated as though they were a DirectoryString.
584 .SH "EXAMPLES"
585 .IX Header "EXAMPLES"
586 Examine and verify certificate request:
587 .PP
588 .Vb 1
589 \& openssl req \-in req.pem \-text \-verify \-noout
590 .Ve
591 .PP
592 Create a private key and then generate a certificate request from it:
593 .PP
594 .Vb 2
595 \& openssl genrsa \-out key.pem 2048
596 \& openssl req \-new \-key key.pem \-out req.pem
597 .Ve
598 .PP
599 The same but just using req:
600 .PP
601 .Vb 1
602 \& openssl req \-newkey rsa:2048 \-keyout key.pem \-out req.pem
603 .Ve
604 .PP
605 Generate a self signed root certificate:
606 .PP
607 .Vb 1
608 \& openssl req \-x509 \-newkey rsa:2048 \-keyout key.pem \-out req.pem
609 .Ve
610 .PP
611 Example of a file pointed to by the \fBoid_file\fR option:
612 .PP
613 .Vb 2
614 \& 1.2.3.4        shortName       A longer Name
615 \& 1.2.3.6        otherName       Other longer Name
616 .Ve
617 .PP
618 Example of a section pointed to by \fBoid_section\fR making use of variable
619 expansion:
620 .PP
621 .Vb 2
622 \& testoid1=1.2.3.5
623 \& testoid2=${testoid1}.6
624 .Ve
625 .PP
626 Sample configuration file prompting for field values:
627 .PP
628 .Vb 6
629 \& [ req ]
630 \& default_bits           = 2048
631 \& default_keyfile        = privkey.pem
632 \& distinguished_name     = req_distinguished_name
633 \& attributes             = req_attributes
634 \& req_extensions         = v3_ca
635 \&
636 \& dirstring_type = nobmp
637 \&
638 \& [ req_distinguished_name ]
639 \& countryName                    = Country Name (2 letter code)
640 \& countryName_default            = AU
641 \& countryName_min                = 2
642 \& countryName_max                = 2
643 \&
644 \& localityName                   = Locality Name (eg, city)
645 \&
646 \& organizationalUnitName         = Organizational Unit Name (eg, section)
647 \&
648 \& commonName                     = Common Name (eg, YOUR name)
649 \& commonName_max                 = 64
650 \&
651 \& emailAddress                   = Email Address
652 \& emailAddress_max               = 40
653 \&
654 \& [ req_attributes ]
655 \& challengePassword              = A challenge password
656 \& challengePassword_min          = 4
657 \& challengePassword_max          = 20
658 \&
659 \& [ v3_ca ]
660 \&
661 \& subjectKeyIdentifier=hash
662 \& authorityKeyIdentifier=keyid:always,issuer:always
663 \& basicConstraints = critical, CA:true
664 .Ve
665 .PP
666 Sample configuration containing all field values:
667 .PP
668 .Vb 1
669 \& RANDFILE               = $ENV::HOME/.rnd
670 \&
671 \& [ req ]
672 \& default_bits           = 2048
673 \& default_keyfile        = keyfile.pem
674 \& distinguished_name     = req_distinguished_name
675 \& attributes             = req_attributes
676 \& prompt                 = no
677 \& output_password        = mypass
678 \&
679 \& [ req_distinguished_name ]
680 \& C                      = GB
681 \& ST                     = Test State or Province
682 \& L                      = Test Locality
683 \& O                      = Organization Name
684 \& OU                     = Organizational Unit Name
685 \& CN                     = Common Name
686 \& emailAddress           = test@email.address
687 \&
688 \& [ req_attributes ]
689 \& challengePassword              = A challenge password
690 .Ve
691 .PP
692 Example of giving the most common attributes (subject and extensions)
693 on the command line:
694 .PP
695 .Vb 4
696 \& openssl req \-new \-subj "/C=GB/CN=foo" \e
697 \&                  \-addext "subjectAltName = DNS:foo.co.uk" \e
698 \&                  \-addext "certificatePolicies = 1.2.3.4" \e
699 \&                  \-newkey rsa:2048 \-keyout key.pem \-out req.pem
700 .Ve
701 .SH "NOTES"
702 .IX Header "NOTES"
703 The header and footer lines in the \fB\s-1PEM\s0\fR format are normally:
704 .PP
705 .Vb 2
706 \& \-\-\-\-\-BEGIN CERTIFICATE REQUEST\-\-\-\-\-
707 \& \-\-\-\-\-END CERTIFICATE REQUEST\-\-\-\-\-
708 .Ve
709 .PP
710 some software (some versions of Netscape certificate server) instead needs:
711 .PP
712 .Vb 2
713 \& \-\-\-\-\-BEGIN NEW CERTIFICATE REQUEST\-\-\-\-\-
714 \& \-\-\-\-\-END NEW CERTIFICATE REQUEST\-\-\-\-\-
715 .Ve
716 .PP
717 which is produced with the \fB\-newhdr\fR option but is otherwise compatible.
718 Either form is accepted transparently on input.
719 .PP
720 The certificate requests generated by \fBXenroll\fR with \s-1MSIE\s0 have extensions
721 added. It includes the \fBkeyUsage\fR extension which determines the type of
722 key (signature only or general purpose) and any additional OIDs entered
723 by the script in an extendedKeyUsage extension.
724 .SH "DIAGNOSTICS"
725 .IX Header "DIAGNOSTICS"
726 The following messages are frequently asked about:
727 .PP
728 .Vb 2
729 \&        Using configuration from /some/path/openssl.cnf
730 \&        Unable to load config info
731 .Ve
732 .PP
733 This is followed some time later by...
734 .PP
735 .Vb 2
736 \&        unable to find \*(Aqdistinguished_name\*(Aq in config
737 \&        problems making Certificate Request
738 .Ve
739 .PP
740 The first error message is the clue: it can't find the configuration
741 file! Certain operations (like examining a certificate request) don't
742 need a configuration file so its use isn't enforced. Generation of
743 certificates or requests however does need a configuration file. This
744 could be regarded as a bug.
745 .PP
746 Another puzzling message is this:
747 .PP
748 .Vb 2
749 \&        Attributes:
750 \&            a0:00
751 .Ve
752 .PP
753 this is displayed when no attributes are present and the request includes
754 the correct empty \fB\s-1SET OF\s0\fR structure (the \s-1DER\s0 encoding of which is 0xa0
755 0x00). If you just see:
756 .PP
757 .Vb 1
758 \&        Attributes:
759 .Ve
760 .PP
761 then the \fB\s-1SET OF\s0\fR is missing and the encoding is technically invalid (but
762 it is tolerated). See the description of the command line option \fB\-asn1\-kludge\fR
763 for more information.
764 .SH "BUGS"
765 .IX Header "BUGS"
766 OpenSSL's handling of T61Strings (aka TeletexStrings) is broken: it effectively
767 treats them as \s-1ISO\-8859\-1\s0 (Latin 1), Netscape and \s-1MSIE\s0 have similar behaviour.
768 This can cause problems if you need characters that aren't available in
769 PrintableStrings and you don't want to or can't use BMPStrings.
770 .PP
771 As a consequence of the T61String handling the only correct way to represent
772 accented characters in OpenSSL is to use a BMPString: unfortunately Netscape
773 currently chokes on these. If you have to use accented characters with Netscape
774 and \s-1MSIE\s0 then you currently need to use the invalid T61String form.
775 .PP
776 The current prompting is not very friendly. It doesn't allow you to confirm what
777 you've just entered. Other things like extensions in certificate requests are
778 statically defined in the configuration file. Some of these: like an email
779 address in subjectAltName should be input by the user.
780 .SH "SEE ALSO"
781 .IX Header "SEE ALSO"
782 \&\fBx509\fR\|(1), \fBca\fR\|(1), \fBgenrsa\fR\|(1),
783 \&\fBgendsa\fR\|(1), \fBconfig\fR\|(5),
784 \&\fBx509v3_config\fR\|(5)
785 .SH "COPYRIGHT"
786 .IX Header "COPYRIGHT"
787 Copyright 2000\-2018 The OpenSSL Project Authors. All Rights Reserved.
788 .PP
789 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
790 this file except in compliance with the License.  You can obtain a copy
791 in the file \s-1LICENSE\s0 in the source distribution or at
792 <https://www.openssl.org/source/license.html>.