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