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