xref: /freebsd/crypto/openssl/doc/man1/openssl-req.pod.in (revision 0d0c8621fd181e507f0fb50ffcca606faf66a8c2)
1b077aed3SPierre Pronchery=pod
2b077aed3SPierre Pronchery{- OpenSSL::safe::output_do_not_edit_headers(); -}
3b077aed3SPierre Pronchery
4b077aed3SPierre Pronchery=head1 NAME
5b077aed3SPierre Pronchery
6b077aed3SPierre Proncheryopenssl-req - PKCS#10 certificate request and certificate generating command
7b077aed3SPierre Pronchery
8b077aed3SPierre Pronchery=head1 SYNOPSIS
9b077aed3SPierre Pronchery
10b077aed3SPierre ProncheryB<openssl> B<req>
11b077aed3SPierre Pronchery[B<-help>]
12b077aed3SPierre Pronchery[B<-inform> B<DER>|B<PEM>]
13b077aed3SPierre Pronchery[B<-outform> B<DER>|B<PEM>]
14b077aed3SPierre Pronchery[B<-in> I<filename>]
15b077aed3SPierre Pronchery[B<-passin> I<arg>]
16b077aed3SPierre Pronchery[B<-out> I<filename>]
17b077aed3SPierre Pronchery[B<-passout> I<arg>]
18b077aed3SPierre Pronchery[B<-text>]
19b077aed3SPierre Pronchery[B<-pubkey>]
20b077aed3SPierre Pronchery[B<-noout>]
21b077aed3SPierre Pronchery[B<-verify>]
22b077aed3SPierre Pronchery[B<-modulus>]
23b077aed3SPierre Pronchery[B<-new>]
24b077aed3SPierre Pronchery[B<-newkey> I<arg>]
25b077aed3SPierre Pronchery[B<-pkeyopt> I<opt>:I<value>]
26b077aed3SPierre Pronchery[B<-noenc>]
27b077aed3SPierre Pronchery[B<-nodes>]
28b077aed3SPierre Pronchery[B<-key> I<filename>|I<uri>]
29b077aed3SPierre Pronchery[B<-keyform> B<DER>|B<PEM>|B<P12>|B<ENGINE>]
30b077aed3SPierre Pronchery[B<-keyout> I<filename>]
31b077aed3SPierre Pronchery[B<-keygen_engine> I<id>]
32b077aed3SPierre Pronchery[B<-I<digest>>]
33b077aed3SPierre Pronchery[B<-config> I<filename>]
34b077aed3SPierre Pronchery[B<-section> I<name>]
35b077aed3SPierre Pronchery[B<-x509>]
36b077aed3SPierre Pronchery[B<-CA> I<filename>|I<uri>]
37b077aed3SPierre Pronchery[B<-CAkey> I<filename>|I<uri>]
38b077aed3SPierre Pronchery[B<-days> I<n>]
39b077aed3SPierre Pronchery[B<-set_serial> I<n>]
40b077aed3SPierre Pronchery[B<-newhdr>]
41b077aed3SPierre Pronchery[B<-copy_extensions> I<arg>]
42b077aed3SPierre Pronchery[B<-addext> I<ext>]
43b077aed3SPierre Pronchery[B<-extensions> I<section>]
44b077aed3SPierre Pronchery[B<-reqexts> I<section>]
45b077aed3SPierre Pronchery[B<-precert>]
46b077aed3SPierre Pronchery[B<-utf8>]
47b077aed3SPierre Pronchery[B<-reqopt>]
48b077aed3SPierre Pronchery[B<-subject>]
49b077aed3SPierre Pronchery[B<-subj> I<arg>]
50b077aed3SPierre Pronchery[B<-multivalue-rdn>]
51b077aed3SPierre Pronchery[B<-sigopt> I<nm>:I<v>]
52b077aed3SPierre Pronchery[B<-vfyopt> I<nm>:I<v>]
53b077aed3SPierre Pronchery[B<-batch>]
54b077aed3SPierre Pronchery[B<-verbose>]
55b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_name_synopsis -}
56b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_r_synopsis -}
57b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_engine_synopsis -}{- $OpenSSL::safe::opt_provider_synopsis -}
58b077aed3SPierre Pronchery
59b077aed3SPierre Pronchery=head1 DESCRIPTION
60b077aed3SPierre Pronchery
61b077aed3SPierre ProncheryThis command primarily creates and processes certificate requests (CSRs)
62b077aed3SPierre Proncheryin PKCS#10 format. It can additionally create self-signed certificates
63b077aed3SPierre Proncheryfor use as root CAs for example.
64b077aed3SPierre Pronchery
65b077aed3SPierre Pronchery=head1 OPTIONS
66b077aed3SPierre Pronchery
67b077aed3SPierre Pronchery=over 4
68b077aed3SPierre Pronchery
69b077aed3SPierre Pronchery=item B<-help>
70b077aed3SPierre Pronchery
71b077aed3SPierre ProncheryPrint out a usage message.
72b077aed3SPierre Pronchery
73b077aed3SPierre Pronchery=item B<-inform> B<DER>|B<PEM>, B<-outform> B<DER>|B<PEM>
74b077aed3SPierre Pronchery
75b077aed3SPierre ProncheryThe input and output formats; unspecified by default.
76b077aed3SPierre ProncherySee L<openssl-format-options(1)> for details.
77b077aed3SPierre Pronchery
78b077aed3SPierre ProncheryThe data is a PKCS#10 object.
79b077aed3SPierre Pronchery
80b077aed3SPierre Pronchery=item B<-in> I<filename>
81b077aed3SPierre Pronchery
82b077aed3SPierre ProncheryThis specifies the input filename to read a request from.
83b077aed3SPierre ProncheryThis defaults to standard input unless B<-x509> or B<-CA> is specified.
84b077aed3SPierre ProncheryA request is only read if the creation options
85b077aed3SPierre Pronchery(B<-new> or B<-newkey> or B<-precert>) are not specified.
86b077aed3SPierre Pronchery
87b077aed3SPierre Pronchery=item B<-sigopt> I<nm>:I<v>
88b077aed3SPierre Pronchery
89b077aed3SPierre ProncheryPass options to the signature algorithm during sign operations.
90b077aed3SPierre ProncheryNames and values of these options are algorithm-specific.
91b077aed3SPierre Pronchery
92b077aed3SPierre Pronchery=item B<-vfyopt> I<nm>:I<v>
93b077aed3SPierre Pronchery
94b077aed3SPierre ProncheryPass options to the signature algorithm during verify operations.
95b077aed3SPierre ProncheryNames and values of these options are algorithm-specific.
96b077aed3SPierre Pronchery
97b077aed3SPierre Pronchery=begin comment
98b077aed3SPierre Pronchery
99b077aed3SPierre ProncheryMaybe it would be preferable to only have -opts instead of -sigopt and
100b077aed3SPierre Pronchery-vfyopt?  They are both present here to be compatible with L<openssl-ca(1)>,
101b077aed3SPierre Proncherywhich supports both options for good reasons.
102b077aed3SPierre Pronchery
103b077aed3SPierre Pronchery=end comment
104b077aed3SPierre Pronchery
105b077aed3SPierre Pronchery=item B<-passin> I<arg>
106b077aed3SPierre Pronchery
107b077aed3SPierre ProncheryThe password source for private key and certificate input.
108b077aed3SPierre ProncheryFor more information about the format of B<arg>
109b077aed3SPierre Proncherysee L<openssl-passphrase-options(1)>.
110b077aed3SPierre Pronchery
111b077aed3SPierre Pronchery=item B<-passout> I<arg>
112b077aed3SPierre Pronchery
113b077aed3SPierre ProncheryThe password source for the output file.
114b077aed3SPierre ProncheryFor more information about the format of B<arg>
115b077aed3SPierre Proncherysee L<openssl-passphrase-options(1)>.
116b077aed3SPierre Pronchery
117b077aed3SPierre Pronchery=item B<-out> I<filename>
118b077aed3SPierre Pronchery
119b077aed3SPierre ProncheryThis specifies the output filename to write to or standard output by default.
120b077aed3SPierre Pronchery
121b077aed3SPierre Pronchery=item B<-text>
122b077aed3SPierre Pronchery
123b077aed3SPierre ProncheryPrints out the certificate request in text form.
124b077aed3SPierre Pronchery
125b077aed3SPierre Pronchery=item B<-subject>
126b077aed3SPierre Pronchery
127b077aed3SPierre ProncheryPrints out the certificate request subject
128b077aed3SPierre Pronchery(or certificate subject if B<-x509> is in use).
129b077aed3SPierre Pronchery
130b077aed3SPierre Pronchery=item B<-pubkey>
131b077aed3SPierre Pronchery
132b077aed3SPierre ProncheryPrints out the public key.
133b077aed3SPierre Pronchery
134b077aed3SPierre Pronchery=item B<-noout>
135b077aed3SPierre Pronchery
136b077aed3SPierre ProncheryThis option prevents output of the encoded version of the certificate request.
137b077aed3SPierre Pronchery
138b077aed3SPierre Pronchery=item B<-modulus>
139b077aed3SPierre Pronchery
140b077aed3SPierre ProncheryPrints out the value of the modulus of the public key contained in the request.
141b077aed3SPierre Pronchery
142b077aed3SPierre Pronchery=item B<-verify>
143b077aed3SPierre Pronchery
144b077aed3SPierre ProncheryVerifies the self-signature on the request.
145b077aed3SPierre Pronchery
146b077aed3SPierre Pronchery=item B<-new>
147b077aed3SPierre Pronchery
148b077aed3SPierre ProncheryThis option generates a new certificate request. It will prompt
149b077aed3SPierre Proncherythe user for the relevant field values. The actual fields
150b077aed3SPierre Proncheryprompted for and their maximum and minimum sizes are specified
151b077aed3SPierre Proncheryin the configuration file and any requested extensions.
152b077aed3SPierre Pronchery
153b077aed3SPierre ProncheryIf the B<-key> option is not given it will generate a new private key
154b077aed3SPierre Proncheryusing information specified in the configuration file or given with
155b077aed3SPierre Proncherythe B<-newkey> and B<-pkeyopt> options,
156b077aed3SPierre Proncheryelse by default an RSA key with 2048 bits length.
157b077aed3SPierre Pronchery
158b077aed3SPierre Pronchery=item B<-newkey> I<arg>
159b077aed3SPierre Pronchery
160b077aed3SPierre ProncheryThis option is used to generate a new private key unless B<-key> is given.
161b077aed3SPierre ProncheryIt is subsequently used as if it was given using the B<-key> option.
162b077aed3SPierre Pronchery
163b077aed3SPierre ProncheryThis option implies the B<-new> flag to create a new certificate request
164b077aed3SPierre Proncheryor a new certificate in case B<-x509> is given.
165b077aed3SPierre Pronchery
166b077aed3SPierre ProncheryThe argument takes one of several forms.
167b077aed3SPierre Pronchery
168b077aed3SPierre Pronchery[B<rsa:>]I<nbits> generates an RSA key I<nbits> in size.
169b077aed3SPierre ProncheryIf I<nbits> is omitted, i.e., B<-newkey> B<rsa> is specified,
170b077aed3SPierre Proncherythe default key size specified in the configuration file
171b077aed3SPierre Proncherywith the B<default_bits> option is used if present, else 2048.
172b077aed3SPierre Pronchery
173b077aed3SPierre ProncheryAll other algorithms support the B<-newkey> I<algname>:I<file> form, where
174b077aed3SPierre ProncheryI<file> is an algorithm parameter file, created with C<openssl genpkey -genparam>
175b077aed3SPierre Proncheryor an X.509 certificate for a key with appropriate algorithm.
176b077aed3SPierre Pronchery
177b077aed3SPierre ProncheryB<param:>I<file> generates a key using the parameter file or certificate
178b077aed3SPierre ProncheryI<file>, the algorithm is determined by the parameters.
179b077aed3SPierre Pronchery
180b077aed3SPierre ProncheryI<algname>[:I<file>] generates a key using the given algorithm I<algname>.
181b077aed3SPierre ProncheryIf a parameter file I<file> is given then the parameters specified there
182b077aed3SPierre Proncheryare used, where the algorithm parameters must match I<algname>.
183b077aed3SPierre ProncheryIf algorithm parameters are not given,
184b077aed3SPierre Proncheryany necessary parameters should be specified via the B<-pkeyopt> option.
185b077aed3SPierre Pronchery
186b077aed3SPierre ProncheryB<dsa:>I<filename> generates a DSA key using the parameters
187b077aed3SPierre Proncheryin the file I<filename>. B<ec:>I<filename> generates EC key (usable both with
188b077aed3SPierre ProncheryECDSA or ECDH algorithms), B<gost2001:>I<filename> generates GOST R
189b077aed3SPierre Pronchery34.10-2001 key (requires B<gost> engine configured in the configuration
190b077aed3SPierre Proncheryfile). If just B<gost2001> is specified a parameter set should be
191b077aed3SPierre Proncheryspecified by B<-pkeyopt> I<paramset:X>
192b077aed3SPierre Pronchery
193b077aed3SPierre Pronchery=item B<-pkeyopt> I<opt>:I<value>
194b077aed3SPierre Pronchery
195b077aed3SPierre ProncherySet the public key algorithm option I<opt> to I<value>. The precise set of
196b077aed3SPierre Proncheryoptions supported depends on the public key algorithm used and its
197b077aed3SPierre Proncheryimplementation.
198b077aed3SPierre ProncherySee L<openssl-genpkey(1)/KEY GENERATION OPTIONS> for more details.
199b077aed3SPierre Pronchery
200b077aed3SPierre Pronchery=item B<-key> I<filename>|I<uri>
201b077aed3SPierre Pronchery
202b077aed3SPierre ProncheryThis option provides the private key for signing a new certificate or
203b077aed3SPierre Proncherycertificate request.
204b077aed3SPierre ProncheryUnless B<-in> is given, the corresponding public key is placed in
205b077aed3SPierre Proncherythe new certificate or certificate request, resulting in a self-signature.
206b077aed3SPierre Pronchery
207b077aed3SPierre ProncheryFor certificate signing this option is overridden by the B<-CA> option.
208b077aed3SPierre Pronchery
209b077aed3SPierre ProncheryThis option also accepts PKCS#8 format private keys for PEM format files.
210b077aed3SPierre Pronchery
211b077aed3SPierre Pronchery=item B<-keyform> B<DER>|B<PEM>|B<P12>|B<ENGINE>
212b077aed3SPierre Pronchery
213b077aed3SPierre ProncheryThe format of the private key; unspecified by default.
214b077aed3SPierre ProncherySee L<openssl-format-options(1)> for details.
215b077aed3SPierre Pronchery
216b077aed3SPierre Pronchery=item B<-keyout> I<filename>
217b077aed3SPierre Pronchery
218b077aed3SPierre ProncheryThis gives the filename to write any private key to that has been newly created
219b077aed3SPierre Proncheryor read from B<-key>.  If neither the B<-keyout> option nor the B<-key> option
220b077aed3SPierre Proncheryare given then the filename specified in the configuration file with the
221b077aed3SPierre ProncheryB<default_keyfile> option is used, if present.  Thus, if you want to write the
222b077aed3SPierre Proncheryprivate key and the B<-key> option is provided, you should provide the
223b077aed3SPierre ProncheryB<-keyout> option explicitly.  If a new key is generated and no filename is
224b077aed3SPierre Proncheryspecified the key is written to standard output.
225b077aed3SPierre Pronchery
226b077aed3SPierre Pronchery=item B<-noenc>
227b077aed3SPierre Pronchery
228b077aed3SPierre ProncheryIf this option is specified then if a private key is created it
229b077aed3SPierre Proncherywill not be encrypted.
230b077aed3SPierre Pronchery
231b077aed3SPierre Pronchery=item B<-nodes>
232b077aed3SPierre Pronchery
233b077aed3SPierre ProncheryThis option is deprecated since OpenSSL 3.0; use B<-noenc> instead.
234b077aed3SPierre Pronchery
235b077aed3SPierre Pronchery=item B<-I<digest>>
236b077aed3SPierre Pronchery
237b077aed3SPierre ProncheryThis specifies the message digest to sign the request.
238b077aed3SPierre ProncheryAny digest supported by the OpenSSL B<dgst> command can be used.
239b077aed3SPierre ProncheryThis overrides the digest algorithm specified in
240b077aed3SPierre Proncherythe configuration file.
241b077aed3SPierre Pronchery
242b077aed3SPierre ProncherySome public key algorithms may override this choice. For instance, DSA
243b077aed3SPierre Proncherysignatures always use SHA1, GOST R 34.10 signatures always use
244b077aed3SPierre ProncheryGOST R 34.11-94 (B<-md_gost94>), Ed25519 and Ed448 never use any digest.
245b077aed3SPierre Pronchery
246b077aed3SPierre Pronchery=item B<-config> I<filename>
247b077aed3SPierre Pronchery
248b077aed3SPierre ProncheryThis allows an alternative configuration file to be specified.
249b077aed3SPierre ProncheryOptional; for a description of the default value,
250b077aed3SPierre Proncherysee L<openssl(1)/COMMAND SUMMARY>.
251b077aed3SPierre Pronchery
252b077aed3SPierre Pronchery=item B<-section> I<name>
253b077aed3SPierre Pronchery
254b077aed3SPierre ProncherySpecifies the name of the section to use; the default is B<req>.
255b077aed3SPierre Pronchery
256b077aed3SPierre Pronchery=item B<-subj> I<arg>
257b077aed3SPierre Pronchery
258b077aed3SPierre ProncherySets subject name for new request or supersedes the subject name
259b077aed3SPierre Proncherywhen processing a certificate request.
260b077aed3SPierre Pronchery
261b077aed3SPierre ProncheryThe arg must be formatted as C</type0=value0/type1=value1/type2=...>.
262b077aed3SPierre ProncherySpecial characters may be escaped by C<\> (backslash), whitespace is retained.
263b077aed3SPierre ProncheryEmpty values are permitted, but the corresponding type will not be included
264b077aed3SPierre Proncheryin the request.
265b077aed3SPierre ProncheryGiving a single C</> will lead to an empty sequence of RDNs (a NULL-DN).
266b077aed3SPierre ProncheryMulti-valued RDNs can be formed by placing a C<+> character instead of a C</>
267b077aed3SPierre Proncherybetween the AttributeValueAssertions (AVAs) that specify the members of the set.
268b077aed3SPierre ProncheryExample:
269b077aed3SPierre Pronchery
270b077aed3SPierre ProncheryC</DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe>
271b077aed3SPierre Pronchery
272b077aed3SPierre Pronchery=item B<-multivalue-rdn>
273b077aed3SPierre Pronchery
274b077aed3SPierre ProncheryThis option has been deprecated and has no effect.
275b077aed3SPierre Pronchery
276b077aed3SPierre Pronchery=item B<-x509>
277b077aed3SPierre Pronchery
278b077aed3SPierre ProncheryThis option outputs a certificate instead of a certificate request.
279b077aed3SPierre ProncheryThis is typically used to generate test certificates.
280b077aed3SPierre ProncheryIt is implied by the B<-CA> option.
281b077aed3SPierre Pronchery
282b077aed3SPierre ProncheryThis option implies the B<-new> flag if B<-in> is not given.
283b077aed3SPierre Pronchery
284b077aed3SPierre ProncheryIf an existing request is specified with the B<-in> option, it is converted
285e0c4386eSCy Schubertto a certificate; otherwise a request is created from scratch.
286b077aed3SPierre Pronchery
287b077aed3SPierre ProncheryUnless specified using the B<-set_serial> option,
288b077aed3SPierre Proncherya large random number will be used for the serial number.
289b077aed3SPierre Pronchery
290b077aed3SPierre ProncheryUnless the B<-copy_extensions> option is used,
291b077aed3SPierre ProncheryX.509 extensions are not copied from any provided request input file.
292b077aed3SPierre Pronchery
293b077aed3SPierre ProncheryX.509 extensions to be added can be specified in the configuration file
294b077aed3SPierre Proncheryor using the B<-addext> option.
295b077aed3SPierre Pronchery
296b077aed3SPierre Pronchery=item B<-CA> I<filename>|I<uri>
297b077aed3SPierre Pronchery
298b077aed3SPierre ProncherySpecifies the "CA" certificate to be used for signing a new certificate
299b077aed3SPierre Proncheryand implies use of B<-x509>.
300b077aed3SPierre ProncheryWhen present, this behaves like a "micro CA" as follows:
301b077aed3SPierre ProncheryThe subject name of the "CA" certificate is placed as issuer name in the new
302b077aed3SPierre Proncherycertificate, which is then signed using the "CA" key given as specified below.
303b077aed3SPierre Pronchery
304b077aed3SPierre Pronchery=item B<-CAkey> I<filename>|I<uri>
305b077aed3SPierre Pronchery
306b077aed3SPierre ProncherySets the "CA" private key to sign a certificate with.
307b077aed3SPierre ProncheryThe private key must match the public key of the certificate given with B<-CA>.
308b077aed3SPierre ProncheryIf this option is not provided then the key must be present in the B<-CA> input.
309b077aed3SPierre Pronchery
310b077aed3SPierre Pronchery=item B<-days> I<n>
311b077aed3SPierre Pronchery
312b077aed3SPierre ProncheryWhen B<-x509> is in use this specifies the number of
313b077aed3SPierre Proncherydays to certify the certificate for, otherwise it is ignored. I<n> should
314b077aed3SPierre Proncherybe a positive integer. The default is 30 days.
315b077aed3SPierre Pronchery
316b077aed3SPierre Pronchery=item B<-set_serial> I<n>
317b077aed3SPierre Pronchery
318b077aed3SPierre ProncherySerial number to use when outputting a self-signed certificate.
319b077aed3SPierre ProncheryThis may be specified as a decimal value or a hex value if preceded by C<0x>.
320b077aed3SPierre ProncheryIf not given, a large random number will be used.
321b077aed3SPierre Pronchery
322b077aed3SPierre Pronchery=item B<-copy_extensions> I<arg>
323b077aed3SPierre Pronchery
324b077aed3SPierre ProncheryDetermines how X.509 extensions in certificate requests should be handled
325b077aed3SPierre Proncherywhen B<-x509> is in use.
326b077aed3SPierre ProncheryIf I<arg> is B<none> or this option is not present then extensions are ignored.
327b077aed3SPierre ProncheryIf I<arg> is B<copy> or B<copyall> then
328b077aed3SPierre Proncheryall extensions in the request are copied to the certificate.
329b077aed3SPierre Pronchery
330b077aed3SPierre ProncheryThe main use of this option is to allow a certificate request to supply
331b077aed3SPierre Proncheryvalues for certain extensions such as subjectAltName.
332b077aed3SPierre Pronchery
333b077aed3SPierre Pronchery=item B<-addext> I<ext>
334b077aed3SPierre Pronchery
335b077aed3SPierre ProncheryAdd a specific extension to the certificate (if B<-x509> is in use)
336b077aed3SPierre Proncheryor certificate request.  The argument must have the form of
337b077aed3SPierre Proncherya key=value pair as it would appear in a config file.
338b077aed3SPierre Pronchery
339b077aed3SPierre ProncheryThis option can be given multiple times.
340b077aed3SPierre Pronchery
341b077aed3SPierre Pronchery=item B<-extensions> I<section>
342b077aed3SPierre Pronchery
343b077aed3SPierre Pronchery=item B<-reqexts> I<section>
344b077aed3SPierre Pronchery
345b077aed3SPierre ProncheryThese options specify alternative sections to include certificate
346b077aed3SPierre Proncheryextensions (if B<-x509> is in use) or certificate request extensions.
347b077aed3SPierre ProncheryThis allows several different sections to
348b077aed3SPierre Proncherybe used in the same configuration file to specify requests for
349b077aed3SPierre Proncherya variety of purposes.
350b077aed3SPierre Pronchery
351b077aed3SPierre Pronchery=item B<-precert>
352b077aed3SPierre Pronchery
353b077aed3SPierre ProncheryA poison extension will be added to the certificate, making it a
354b077aed3SPierre Pronchery"pre-certificate" (see RFC6962). This can be submitted to Certificate
355b077aed3SPierre ProncheryTransparency logs in order to obtain signed certificate timestamps (SCTs).
356b077aed3SPierre ProncheryThese SCTs can then be embedded into the pre-certificate as an extension, before
357b077aed3SPierre Proncheryremoving the poison and signing the certificate.
358b077aed3SPierre Pronchery
359b077aed3SPierre ProncheryThis implies the B<-new> flag.
360b077aed3SPierre Pronchery
361b077aed3SPierre Pronchery=item B<-utf8>
362b077aed3SPierre Pronchery
363b077aed3SPierre ProncheryThis option causes field values to be interpreted as UTF8 strings, by
364b077aed3SPierre Proncherydefault they are interpreted as ASCII. This means that the field
365b077aed3SPierre Proncheryvalues, whether prompted from a terminal or obtained from a
366b077aed3SPierre Proncheryconfiguration file, must be valid UTF8 strings.
367b077aed3SPierre Pronchery
368b077aed3SPierre Pronchery=item B<-reqopt> I<option>
369b077aed3SPierre Pronchery
370b077aed3SPierre ProncheryCustomise the printing format used with B<-text>. The I<option> argument can be
371b077aed3SPierre Proncherya single option or multiple options separated by commas.
372b077aed3SPierre Pronchery
373b077aed3SPierre ProncherySee discussion of the  B<-certopt> parameter in the L<openssl-x509(1)>
374b077aed3SPierre Proncherycommand.
375b077aed3SPierre Pronchery
376b077aed3SPierre Pronchery=item B<-newhdr>
377b077aed3SPierre Pronchery
378b077aed3SPierre ProncheryAdds the word B<NEW> to the PEM file header and footer lines on the outputted
379b077aed3SPierre Proncheryrequest. Some software (Netscape certificate server) and some CAs need this.
380b077aed3SPierre Pronchery
381b077aed3SPierre Pronchery=item B<-batch>
382b077aed3SPierre Pronchery
383b077aed3SPierre ProncheryNon-interactive mode.
384b077aed3SPierre Pronchery
385b077aed3SPierre Pronchery=item B<-verbose>
386b077aed3SPierre Pronchery
387b077aed3SPierre ProncheryPrint extra details about the operations being performed.
388b077aed3SPierre Pronchery
389b077aed3SPierre Pronchery=item B<-keygen_engine> I<id>
390b077aed3SPierre Pronchery
391b077aed3SPierre ProncherySpecifies an engine (by its unique I<id> string) which would be used
392b077aed3SPierre Proncheryfor key generation operations.
393b077aed3SPierre Pronchery
394b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_name_item -}
395b077aed3SPierre Pronchery
396b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_r_item -}
397b077aed3SPierre Pronchery
398b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_engine_item -}
399b077aed3SPierre Pronchery
400b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_provider_item -}
401b077aed3SPierre Pronchery
402b077aed3SPierre Pronchery=back
403b077aed3SPierre Pronchery
404b077aed3SPierre Pronchery=head1 CONFIGURATION FILE FORMAT
405b077aed3SPierre Pronchery
406b077aed3SPierre ProncheryThe configuration options are specified in the B<req> section of
407b077aed3SPierre Proncherythe configuration file. An alternate name be specified by using the
408b077aed3SPierre ProncheryB<-section> option.
409b077aed3SPierre ProncheryAs with all configuration files, if no
410b077aed3SPierre Proncheryvalue is specified in the specific section then
411b077aed3SPierre Proncherythe initial unnamed or B<default> section is searched too.
412b077aed3SPierre Pronchery
413b077aed3SPierre ProncheryThe options available are described in detail below.
414b077aed3SPierre Pronchery
415b077aed3SPierre Pronchery=over 4
416b077aed3SPierre Pronchery
417b077aed3SPierre Pronchery=item B<input_password>, B<output_password>
418b077aed3SPierre Pronchery
419b077aed3SPierre ProncheryThe passwords for the input private key file (if present) and
420b077aed3SPierre Proncherythe output private key file (if one will be created). The
421b077aed3SPierre Proncherycommand line options B<passin> and B<passout> override the
422b077aed3SPierre Proncheryconfiguration file values.
423b077aed3SPierre Pronchery
424b077aed3SPierre Pronchery=item B<default_bits>
425b077aed3SPierre Pronchery
426b077aed3SPierre ProncherySpecifies the default key size in bits.
427b077aed3SPierre Pronchery
428b077aed3SPierre ProncheryThis option is used in conjunction with the B<-new> option to generate
429b077aed3SPierre Proncherya new key. It can be overridden by specifying an explicit key size in
430b077aed3SPierre Proncherythe B<-newkey> option. The smallest accepted key size is 512 bits. If
431b077aed3SPierre Proncheryno key size is specified then 2048 bits is used.
432b077aed3SPierre Pronchery
433b077aed3SPierre Pronchery=item B<default_keyfile>
434b077aed3SPierre Pronchery
435b077aed3SPierre ProncheryThis is the default filename to write a private key to. If not
436b077aed3SPierre Proncheryspecified the key is written to standard output. This can be
437b077aed3SPierre Proncheryoverridden by the B<-keyout> option.
438b077aed3SPierre Pronchery
439b077aed3SPierre Pronchery=item B<oid_file>
440b077aed3SPierre Pronchery
441b077aed3SPierre ProncheryThis specifies a file containing additional B<OBJECT IDENTIFIERS>.
442b077aed3SPierre ProncheryEach line of the file should consist of the numerical form of the
443b077aed3SPierre Proncheryobject identifier followed by whitespace then the short name followed
444b077aed3SPierre Proncheryby whitespace and finally the long name.
445b077aed3SPierre Pronchery
446b077aed3SPierre Pronchery=item B<oid_section>
447b077aed3SPierre Pronchery
448b077aed3SPierre ProncheryThis specifies a section in the configuration file containing extra
449b077aed3SPierre Proncheryobject identifiers. Each line should consist of the short name of the
450b077aed3SPierre Proncheryobject identifier followed by B<=> and the numerical form. The short
451b077aed3SPierre Proncheryand long names are the same when this option is used.
452b077aed3SPierre Pronchery
453b077aed3SPierre Pronchery=item B<RANDFILE>
454b077aed3SPierre Pronchery
455b077aed3SPierre ProncheryAt startup the specified file is loaded into the random number generator,
456b077aed3SPierre Proncheryand at exit 256 bytes will be written to it.
457b077aed3SPierre ProncheryIt is used for private key generation.
458b077aed3SPierre Pronchery
459b077aed3SPierre Pronchery=item B<encrypt_key>
460b077aed3SPierre Pronchery
461b077aed3SPierre ProncheryIf this is set to B<no> then if a private key is generated it is
462b077aed3SPierre ProncheryB<not> encrypted. This is equivalent to the B<-noenc> command line
463b077aed3SPierre Proncheryoption. For compatibility B<encrypt_rsa_key> is an equivalent option.
464b077aed3SPierre Pronchery
465b077aed3SPierre Pronchery=item B<default_md>
466b077aed3SPierre Pronchery
467b077aed3SPierre ProncheryThis option specifies the digest algorithm to use. Any digest supported by the
468b077aed3SPierre ProncheryOpenSSL B<dgst> command can be used. This option can be overridden on the
469b077aed3SPierre Proncherycommand line. Certain signing algorithms (i.e. Ed25519 and Ed448) will ignore
470b077aed3SPierre Proncheryany digest that has been set.
471b077aed3SPierre Pronchery
472b077aed3SPierre Pronchery=item B<string_mask>
473b077aed3SPierre Pronchery
474b077aed3SPierre ProncheryThis option masks out the use of certain string types in certain
47544096ebdSEnji Cooperfields. Most users will not need to change this option. It can be set to
47644096ebdSEnji Cooperseveral values:
477b077aed3SPierre Pronchery
47844096ebdSEnji Cooper=over 4
47944096ebdSEnji Cooper
48044096ebdSEnji Cooper=item B<utf8only>
48144096ebdSEnji Cooper- only UTF8Strings are used (this is the default value)
48244096ebdSEnji Cooper
48344096ebdSEnji Cooper=item B<pkix>
48444096ebdSEnji Cooper- any string type except T61Strings
48544096ebdSEnji Cooper
48644096ebdSEnji Cooper=item B<nombstr>
48744096ebdSEnji Cooper- any string type except BMPStrings and UTF8Strings
48844096ebdSEnji Cooper
48944096ebdSEnji Cooper=item B<default>
49044096ebdSEnji Cooper- any kind of string type
49144096ebdSEnji Cooper
49244096ebdSEnji Cooper=back
49344096ebdSEnji Cooper
49444096ebdSEnji CooperNote that B<utf8only> is the PKIX recommendation in RFC2459 after 2003, and the
49544096ebdSEnji Cooperdefault B<string_mask>; B<default> is not the default option. The B<nombstr>
49644096ebdSEnji Coopervalue is a workaround for some software that has problems with variable-sized
49744096ebdSEnji CooperBMPStrings and UTF8Strings.
498b077aed3SPierre Pronchery
499b077aed3SPierre Pronchery=item B<req_extensions>
500b077aed3SPierre Pronchery
501b077aed3SPierre ProncheryThis specifies the configuration file section containing a list of
502b077aed3SPierre Proncheryextensions to add to the certificate request. It can be overridden
503b077aed3SPierre Proncheryby the B<-reqexts> command line switch. See the
504b077aed3SPierre ProncheryL<x509v3_config(5)> manual page for details of the
505b077aed3SPierre Proncheryextension section format.
506b077aed3SPierre Pronchery
507b077aed3SPierre Pronchery=item B<x509_extensions>
508b077aed3SPierre Pronchery
509b077aed3SPierre ProncheryThis specifies the configuration file section containing a list of
510b077aed3SPierre Proncheryextensions to add to certificate generated when B<-x509> is in use.
511b077aed3SPierre ProncheryIt can be overridden by the B<-extensions> command line switch.
512b077aed3SPierre Pronchery
513b077aed3SPierre Pronchery=item B<prompt>
514b077aed3SPierre Pronchery
515b077aed3SPierre ProncheryIf set to the value B<no> this disables prompting of certificate fields
516b077aed3SPierre Proncheryand just takes values from the config file directly. It also changes the
517b077aed3SPierre Proncheryexpected format of the B<distinguished_name> and B<attributes> sections.
518b077aed3SPierre Pronchery
519b077aed3SPierre Pronchery=item B<utf8>
520b077aed3SPierre Pronchery
521b077aed3SPierre ProncheryIf set to the value B<yes> then field values to be interpreted as UTF8
522b077aed3SPierre Proncherystrings, by default they are interpreted as ASCII. This means that
523b077aed3SPierre Proncherythe field values, whether prompted from a terminal or obtained from a
524b077aed3SPierre Proncheryconfiguration file, must be valid UTF8 strings.
525b077aed3SPierre Pronchery
526b077aed3SPierre Pronchery=item B<attributes>
527b077aed3SPierre Pronchery
528b077aed3SPierre ProncheryThis specifies the section containing any request attributes: its format
529b077aed3SPierre Proncheryis the same as B<distinguished_name>. Typically these may contain the
530b077aed3SPierre ProncherychallengePassword or unstructuredName types. They are currently ignored
531b077aed3SPierre Proncheryby OpenSSL's request signing utilities but some CAs might want them.
532b077aed3SPierre Pronchery
533b077aed3SPierre Pronchery=item B<distinguished_name>
534b077aed3SPierre Pronchery
535b077aed3SPierre ProncheryThis specifies the section containing the distinguished name fields to
536b077aed3SPierre Proncheryprompt for when generating a certificate or certificate request. The format
537b077aed3SPierre Proncheryis described in the next section.
538b077aed3SPierre Pronchery
539b077aed3SPierre Pronchery=back
540b077aed3SPierre Pronchery
541b077aed3SPierre Pronchery=head1 DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT
542b077aed3SPierre Pronchery
543b077aed3SPierre ProncheryThere are two separate formats for the distinguished name and attribute
544b077aed3SPierre Proncherysections. If the B<prompt> option is set to B<no> then these sections
545b077aed3SPierre Proncheryjust consist of field names and values: for example,
546b077aed3SPierre Pronchery
547b077aed3SPierre Pronchery CN=My Name
548b077aed3SPierre Pronchery OU=My Organization
549b077aed3SPierre Pronchery emailAddress=someone@somewhere.org
550b077aed3SPierre Pronchery
551b077aed3SPierre ProncheryThis allows external programs (e.g. GUI based) to generate a template file with
552b077aed3SPierre Proncheryall the field names and values and just pass it to this command. An example
553b077aed3SPierre Proncheryof this kind of configuration file is contained in the B<EXAMPLES> section.
554b077aed3SPierre Pronchery
555b077aed3SPierre ProncheryAlternatively if the B<prompt> option is absent or not set to B<no> then the
556b077aed3SPierre Proncheryfile contains field prompting information. It consists of lines of the form:
557b077aed3SPierre Pronchery
558b077aed3SPierre Pronchery fieldName="prompt"
559b077aed3SPierre Pronchery fieldName_default="default field value"
560b077aed3SPierre Pronchery fieldName_min= 2
561b077aed3SPierre Pronchery fieldName_max= 4
562b077aed3SPierre Pronchery
563b077aed3SPierre Pronchery"fieldName" is the field name being used, for example commonName (or CN).
564b077aed3SPierre ProncheryThe "prompt" string is used to ask the user to enter the relevant
565b077aed3SPierre Proncherydetails. If the user enters nothing then the default value is used if no
566b077aed3SPierre Proncherydefault value is present then the field is omitted. A field can
567b077aed3SPierre Proncherystill be omitted if a default value is present if the user just
568b077aed3SPierre Proncheryenters the '.' character.
569b077aed3SPierre Pronchery
570b077aed3SPierre ProncheryThe number of characters entered must be between the fieldName_min and
571b077aed3SPierre ProncheryfieldName_max limits: there may be additional restrictions based
572b077aed3SPierre Proncheryon the field being used (for example countryName can only ever be
573b077aed3SPierre Proncherytwo characters long and must fit in a PrintableString).
574b077aed3SPierre Pronchery
575b077aed3SPierre ProncherySome fields (such as organizationName) can be used more than once
576b077aed3SPierre Proncheryin a DN. This presents a problem because configuration files will
577b077aed3SPierre Proncherynot recognize the same name occurring twice. To avoid this problem
578b077aed3SPierre Proncheryif the fieldName contains some characters followed by a full stop
579b077aed3SPierre Proncherythey will be ignored. So for example a second organizationName can
580b077aed3SPierre Proncherybe input by calling it "1.organizationName".
581b077aed3SPierre Pronchery
582b077aed3SPierre ProncheryThe actual permitted field names are any object identifier short or
583b077aed3SPierre Proncherylong names. These are compiled into OpenSSL and include the usual
584b077aed3SPierre Proncheryvalues such as commonName, countryName, localityName, organizationName,
585b077aed3SPierre ProncheryorganizationalUnitName, stateOrProvinceName. Additionally emailAddress
586b077aed3SPierre Proncheryis included as well as name, surname, givenName, initials, and dnQualifier.
587b077aed3SPierre Pronchery
588b077aed3SPierre ProncheryAdditional object identifiers can be defined with the B<oid_file> or
589b077aed3SPierre ProncheryB<oid_section> options in the configuration file. Any additional fields
590b077aed3SPierre Proncherywill be treated as though they were a DirectoryString.
591b077aed3SPierre Pronchery
592b077aed3SPierre Pronchery
593b077aed3SPierre Pronchery=head1 EXAMPLES
594b077aed3SPierre Pronchery
595b077aed3SPierre ProncheryExamine and verify certificate request:
596b077aed3SPierre Pronchery
597b077aed3SPierre Pronchery openssl req -in req.pem -text -verify -noout
598b077aed3SPierre Pronchery
599b077aed3SPierre ProncheryCreate a private key and then generate a certificate request from it:
600b077aed3SPierre Pronchery
601b077aed3SPierre Pronchery openssl genrsa -out key.pem 2048
602b077aed3SPierre Pronchery openssl req -new -key key.pem -out req.pem
603b077aed3SPierre Pronchery
604b077aed3SPierre ProncheryThe same but just using req:
605b077aed3SPierre Pronchery
606b077aed3SPierre Pronchery openssl req -newkey rsa:2048 -keyout key.pem -out req.pem
607b077aed3SPierre Pronchery
608b077aed3SPierre ProncheryGenerate a self-signed root certificate:
609b077aed3SPierre Pronchery
610b077aed3SPierre Pronchery openssl req -x509 -newkey rsa:2048 -keyout key.pem -out req.pem
611b077aed3SPierre Pronchery
612b077aed3SPierre ProncheryCreate an SM2 private key and then generate a certificate request from it:
613b077aed3SPierre Pronchery
614b077aed3SPierre Pronchery openssl ecparam -genkey -name SM2 -out sm2.key
615b077aed3SPierre Pronchery openssl req -new -key sm2.key -out sm2.csr -sm3 -sigopt "distid:1234567812345678"
616b077aed3SPierre Pronchery
617b077aed3SPierre ProncheryExamine and verify an SM2 certificate request:
618b077aed3SPierre Pronchery
619b077aed3SPierre Pronchery openssl req -verify -in sm2.csr -sm3 -vfyopt "distid:1234567812345678"
620b077aed3SPierre Pronchery
621b077aed3SPierre ProncheryExample of a file pointed to by the B<oid_file> option:
622b077aed3SPierre Pronchery
623b077aed3SPierre Pronchery 1.2.3.4        shortName       A longer Name
624b077aed3SPierre Pronchery 1.2.3.6        otherName       Other longer Name
625b077aed3SPierre Pronchery
626b077aed3SPierre ProncheryExample of a section pointed to by B<oid_section> making use of variable
627b077aed3SPierre Proncheryexpansion:
628b077aed3SPierre Pronchery
629b077aed3SPierre Pronchery testoid1=1.2.3.5
630b077aed3SPierre Pronchery testoid2=${testoid1}.6
631b077aed3SPierre Pronchery
632b077aed3SPierre ProncherySample configuration file prompting for field values:
633b077aed3SPierre Pronchery
634b077aed3SPierre Pronchery [ req ]
635b077aed3SPierre Pronchery default_bits           = 2048
636b077aed3SPierre Pronchery default_keyfile        = privkey.pem
637b077aed3SPierre Pronchery distinguished_name     = req_distinguished_name
638b077aed3SPierre Pronchery attributes             = req_attributes
639b077aed3SPierre Pronchery req_extensions         = v3_ca
640b077aed3SPierre Pronchery
641*0d0c8621SEnji Cooper dirstring_type = nombstr
642b077aed3SPierre Pronchery
643b077aed3SPierre Pronchery [ req_distinguished_name ]
644b077aed3SPierre Pronchery countryName                    = Country Name (2 letter code)
645b077aed3SPierre Pronchery countryName_default            = AU
646b077aed3SPierre Pronchery countryName_min                = 2
647b077aed3SPierre Pronchery countryName_max                = 2
648b077aed3SPierre Pronchery
649b077aed3SPierre Pronchery localityName                   = Locality Name (eg, city)
650b077aed3SPierre Pronchery
651b077aed3SPierre Pronchery organizationalUnitName         = Organizational Unit Name (eg, section)
652b077aed3SPierre Pronchery
653b077aed3SPierre Pronchery commonName                     = Common Name (eg, YOUR name)
654b077aed3SPierre Pronchery commonName_max                 = 64
655b077aed3SPierre Pronchery
656b077aed3SPierre Pronchery emailAddress                   = Email Address
657b077aed3SPierre Pronchery emailAddress_max               = 40
658b077aed3SPierre Pronchery
659b077aed3SPierre Pronchery [ req_attributes ]
660b077aed3SPierre Pronchery challengePassword              = A challenge password
661b077aed3SPierre Pronchery challengePassword_min          = 4
662b077aed3SPierre Pronchery challengePassword_max          = 20
663b077aed3SPierre Pronchery
664b077aed3SPierre Pronchery [ v3_ca ]
665b077aed3SPierre Pronchery
666b077aed3SPierre Pronchery subjectKeyIdentifier=hash
667b077aed3SPierre Pronchery authorityKeyIdentifier=keyid:always,issuer:always
668b077aed3SPierre Pronchery basicConstraints = critical, CA:true
669b077aed3SPierre Pronchery
670b077aed3SPierre ProncherySample configuration containing all field values:
671b077aed3SPierre Pronchery
672b077aed3SPierre Pronchery
673b077aed3SPierre Pronchery [ req ]
674b077aed3SPierre Pronchery default_bits           = 2048
675b077aed3SPierre Pronchery default_keyfile        = keyfile.pem
676b077aed3SPierre Pronchery distinguished_name     = req_distinguished_name
677b077aed3SPierre Pronchery attributes             = req_attributes
678b077aed3SPierre Pronchery prompt                 = no
679b077aed3SPierre Pronchery output_password        = mypass
680b077aed3SPierre Pronchery
681b077aed3SPierre Pronchery [ req_distinguished_name ]
682b077aed3SPierre Pronchery C                      = GB
683b077aed3SPierre Pronchery ST                     = Test State or Province
684b077aed3SPierre Pronchery L                      = Test Locality
685b077aed3SPierre Pronchery O                      = Organization Name
686b077aed3SPierre Pronchery OU                     = Organizational Unit Name
687b077aed3SPierre Pronchery CN                     = Common Name
688b077aed3SPierre Pronchery emailAddress           = test@email.address
689b077aed3SPierre Pronchery
690b077aed3SPierre Pronchery [ req_attributes ]
691b077aed3SPierre Pronchery challengePassword              = A challenge password
692b077aed3SPierre Pronchery
693b077aed3SPierre ProncheryExample of giving the most common attributes (subject and extensions)
694b077aed3SPierre Proncheryon the command line:
695b077aed3SPierre Pronchery
696b077aed3SPierre Pronchery openssl req -new -subj "/C=GB/CN=foo" \
697b077aed3SPierre Pronchery                  -addext "subjectAltName = DNS:foo.co.uk" \
698b077aed3SPierre Pronchery                  -addext "certificatePolicies = 1.2.3.4" \
699b077aed3SPierre Pronchery                  -newkey rsa:2048 -keyout key.pem -out req.pem
700b077aed3SPierre Pronchery
701b077aed3SPierre Pronchery
702b077aed3SPierre Pronchery=head1 NOTES
703b077aed3SPierre Pronchery
704b077aed3SPierre ProncheryThe certificate requests generated by B<Xenroll> with MSIE have extensions
705b077aed3SPierre Proncheryadded. It includes the B<keyUsage> extension which determines the type of
706b077aed3SPierre Proncherykey (signature only or general purpose) and any additional OIDs entered
707b077aed3SPierre Proncheryby the script in an B<extendedKeyUsage> extension.
708b077aed3SPierre Pronchery
709b077aed3SPierre Pronchery=head1 DIAGNOSTICS
710b077aed3SPierre Pronchery
711b077aed3SPierre ProncheryThe following messages are frequently asked about:
712b077aed3SPierre Pronchery
713b077aed3SPierre Pronchery        Using configuration from /some/path/openssl.cnf
714b077aed3SPierre Pronchery        Unable to load config info
715b077aed3SPierre Pronchery
716b077aed3SPierre ProncheryThis is followed some time later by:
717b077aed3SPierre Pronchery
718b077aed3SPierre Pronchery        unable to find 'distinguished_name' in config
719b077aed3SPierre Pronchery        problems making Certificate Request
720b077aed3SPierre Pronchery
721b077aed3SPierre ProncheryThe first error message is the clue: it can't find the configuration
722b077aed3SPierre Proncheryfile! Certain operations (like examining a certificate request) don't
723b077aed3SPierre Proncheryneed a configuration file so its use isn't enforced. Generation of
724b077aed3SPierre Proncherycertificates or requests however does need a configuration file. This
725b077aed3SPierre Proncherycould be regarded as a bug.
726b077aed3SPierre Pronchery
727b077aed3SPierre ProncheryAnother puzzling message is this:
728b077aed3SPierre Pronchery
729b077aed3SPierre Pronchery        Attributes:
730b077aed3SPierre Pronchery            a0:00
731b077aed3SPierre Pronchery
732b077aed3SPierre Proncherythis is displayed when no attributes are present and the request includes
733b077aed3SPierre Proncherythe correct empty B<SET OF> structure (the DER encoding of which is 0xa0
734b077aed3SPierre Pronchery0x00). If you just see:
735b077aed3SPierre Pronchery
736b077aed3SPierre Pronchery        Attributes:
737b077aed3SPierre Pronchery
738b077aed3SPierre Proncherythen the B<SET OF> is missing and the encoding is technically invalid (but
739b077aed3SPierre Proncheryit is tolerated). See the description of the command line option B<-asn1-kludge>
740b077aed3SPierre Proncheryfor more information.
741b077aed3SPierre Pronchery
742b077aed3SPierre Pronchery=head1 BUGS
743b077aed3SPierre Pronchery
744b077aed3SPierre ProncheryOpenSSL's handling of T61Strings (aka TeletexStrings) is broken: it effectively
745b077aed3SPierre Proncherytreats them as ISO-8859-1 (Latin 1), Netscape and MSIE have similar behaviour.
746b077aed3SPierre ProncheryThis can cause problems if you need characters that aren't available in
747b077aed3SPierre ProncheryPrintableStrings and you don't want to or can't use BMPStrings.
748b077aed3SPierre Pronchery
749b077aed3SPierre ProncheryAs a consequence of the T61String handling the only correct way to represent
750b077aed3SPierre Proncheryaccented characters in OpenSSL is to use a BMPString: unfortunately Netscape
751b077aed3SPierre Proncherycurrently chokes on these. If you have to use accented characters with Netscape
752b077aed3SPierre Proncheryand MSIE then you currently need to use the invalid T61String form.
753b077aed3SPierre Pronchery
754b077aed3SPierre ProncheryThe current prompting is not very friendly. It doesn't allow you to confirm what
755b077aed3SPierre Proncheryyou've just entered. Other things like extensions in certificate requests are
756b077aed3SPierre Proncherystatically defined in the configuration file. Some of these: like an email
757b077aed3SPierre Proncheryaddress in subjectAltName should be input by the user.
758b077aed3SPierre Pronchery
759b077aed3SPierre Pronchery=head1 SEE ALSO
760b077aed3SPierre Pronchery
761b077aed3SPierre ProncheryL<openssl(1)>,
762b077aed3SPierre ProncheryL<openssl-x509(1)>,
763b077aed3SPierre ProncheryL<openssl-ca(1)>,
764b077aed3SPierre ProncheryL<openssl-genrsa(1)>,
765b077aed3SPierre ProncheryL<openssl-gendsa(1)>,
766b077aed3SPierre ProncheryL<config(5)>,
767b077aed3SPierre ProncheryL<x509v3_config(5)>
768b077aed3SPierre Pronchery
769b077aed3SPierre Pronchery=head1 HISTORY
770b077aed3SPierre Pronchery
771b077aed3SPierre ProncheryThe B<-section> option was added in OpenSSL 3.0.0.
772b077aed3SPierre Pronchery
773b077aed3SPierre ProncheryThe B<-multivalue-rdn> option has become obsolete in OpenSSL 3.0.0 and
774b077aed3SPierre Proncheryhas no effect.
775b077aed3SPierre Pronchery
776b077aed3SPierre ProncheryThe B<-engine> option was deprecated in OpenSSL 3.0.
777b077aed3SPierre ProncheryThe <-nodes> option was deprecated in OpenSSL 3.0, too; use B<-noenc> instead.
778b077aed3SPierre Pronchery
779b077aed3SPierre Pronchery=head1 COPYRIGHT
780b077aed3SPierre Pronchery
781*0d0c8621SEnji CooperCopyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved.
782b077aed3SPierre Pronchery
783b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License").  You may not use
784b077aed3SPierre Proncherythis file except in compliance with the License.  You can obtain a copy
785b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at
786b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>.
787b077aed3SPierre Pronchery
788b077aed3SPierre Pronchery=cut
789