1*66bae5e7Schristos=pod 2*66bae5e7Schristos{- OpenSSL::safe::output_do_not_edit_headers(); -} 3*66bae5e7Schristos 4*66bae5e7Schristos=head1 NAME 5*66bae5e7Schristos 6*66bae5e7Schristosopenssl-ca - sample minimal CA application 7*66bae5e7Schristos 8*66bae5e7Schristos=head1 SYNOPSIS 9*66bae5e7Schristos 10*66bae5e7SchristosB<openssl> B<ca> 11*66bae5e7Schristos[B<-help>] 12*66bae5e7Schristos[B<-verbose>] 13*66bae5e7Schristos[B<-config> I<filename>] 14*66bae5e7Schristos[B<-name> I<section>] 15*66bae5e7Schristos[B<-section> I<section>] 16*66bae5e7Schristos[B<-gencrl>] 17*66bae5e7Schristos[B<-revoke> I<file>] 18*66bae5e7Schristos[B<-valid> I<file>] 19*66bae5e7Schristos[B<-status> I<serial>] 20*66bae5e7Schristos[B<-updatedb>] 21*66bae5e7Schristos[B<-crl_reason> I<reason>] 22*66bae5e7Schristos[B<-crl_hold> I<instruction>] 23*66bae5e7Schristos[B<-crl_compromise> I<time>] 24*66bae5e7Schristos[B<-crl_CA_compromise> I<time>] 25*66bae5e7Schristos[B<-crl_lastupdate> I<date>] 26*66bae5e7Schristos[B<-crl_nextupdate> I<date>] 27*66bae5e7Schristos[B<-crldays> I<days>] 28*66bae5e7Schristos[B<-crlhours> I<hours>] 29*66bae5e7Schristos[B<-crlsec> I<seconds>] 30*66bae5e7Schristos[B<-crlexts> I<section>] 31*66bae5e7Schristos[B<-startdate> I<date>] 32*66bae5e7Schristos[B<-enddate> I<date>] 33*66bae5e7Schristos[B<-days> I<arg>] 34*66bae5e7Schristos[B<-md> I<arg>] 35*66bae5e7Schristos[B<-policy> I<arg>] 36*66bae5e7Schristos[B<-keyfile> I<filename>|I<uri>] 37*66bae5e7Schristos[B<-keyform> B<DER>|B<PEM>|B<P12>|B<ENGINE>] 38*66bae5e7Schristos[B<-key> I<arg>] 39*66bae5e7Schristos[B<-passin> I<arg>] 40*66bae5e7Schristos[B<-cert> I<file>] 41*66bae5e7Schristos[B<-certform> B<DER>|B<PEM>|B<P12>] 42*66bae5e7Schristos[B<-selfsign>] 43*66bae5e7Schristos[B<-in> I<file>] 44*66bae5e7Schristos[B<-inform> B<DER>|<PEM>] 45*66bae5e7Schristos[B<-out> I<file>] 46*66bae5e7Schristos[B<-notext>] 47*66bae5e7Schristos[B<-dateopt>] 48*66bae5e7Schristos[B<-outdir> I<dir>] 49*66bae5e7Schristos[B<-infiles>] 50*66bae5e7Schristos[B<-spkac> I<file>] 51*66bae5e7Schristos[B<-ss_cert> I<file>] 52*66bae5e7Schristos[B<-preserveDN>] 53*66bae5e7Schristos[B<-noemailDN>] 54*66bae5e7Schristos[B<-batch>] 55*66bae5e7Schristos[B<-msie_hack>] 56*66bae5e7Schristos[B<-extensions> I<section>] 57*66bae5e7Schristos[B<-extfile> I<section>] 58*66bae5e7Schristos[B<-subj> I<arg>] 59*66bae5e7Schristos[B<-utf8>] 60*66bae5e7Schristos[B<-sigopt> I<nm>:I<v>] 61*66bae5e7Schristos[B<-vfyopt> I<nm>:I<v>] 62*66bae5e7Schristos[B<-create_serial>] 63*66bae5e7Schristos[B<-rand_serial>] 64*66bae5e7Schristos[B<-multivalue-rdn>] 65*66bae5e7Schristos{- $OpenSSL::safe::opt_r_synopsis -} 66*66bae5e7Schristos{- $OpenSSL::safe::opt_engine_synopsis -}{- $OpenSSL::safe::opt_provider_synopsis -} 67*66bae5e7Schristos[I<certreq>...] 68*66bae5e7Schristos 69*66bae5e7Schristos=head1 DESCRIPTION 70*66bae5e7Schristos 71*66bae5e7SchristosThis command emulates a CA application. 72*66bae5e7SchristosSee the B<WARNINGS> especially when considering to use it productively. 73*66bae5e7SchristosIt can be used to sign certificate requests (CSRs) in a variety of forms 74*66bae5e7Schristosand generate certificate revocation lists (CRLs). 75*66bae5e7SchristosIt also maintains a text database of issued certificates and their status. 76*66bae5e7SchristosWhen signing certificates, a single request can be specified 77*66bae5e7Schristoswith the B<-in> option, or multiple requests can be processed by 78*66bae5e7Schristosspecifying a set of B<certreq> files after all options. 79*66bae5e7Schristos 80*66bae5e7SchristosNote that there are also very lean ways of generating certificates: 81*66bae5e7Schristosthe B<req> and B<x509> commands can be used for directly creating certificates. 82*66bae5e7SchristosSee L<openssl-req(1)> and L<openssl-x509(1)> for details. 83*66bae5e7Schristos 84*66bae5e7SchristosThe descriptions of the B<ca> command options are divided into each purpose. 85*66bae5e7Schristos 86*66bae5e7Schristos=head1 OPTIONS 87*66bae5e7Schristos 88*66bae5e7Schristos=over 4 89*66bae5e7Schristos 90*66bae5e7Schristos=item B<-help> 91*66bae5e7Schristos 92*66bae5e7SchristosPrint out a usage message. 93*66bae5e7Schristos 94*66bae5e7Schristos=item B<-verbose> 95*66bae5e7Schristos 96*66bae5e7SchristosThis prints extra details about the operations being performed. 97*66bae5e7Schristos 98*66bae5e7Schristos=item B<-config> I<filename> 99*66bae5e7Schristos 100*66bae5e7SchristosSpecifies the configuration file to use. 101*66bae5e7SchristosOptional; for a description of the default value, 102*66bae5e7Schristossee L<openssl(1)/COMMAND SUMMARY>. 103*66bae5e7Schristos 104*66bae5e7Schristos=item B<-name> I<section>, B<-section> I<section> 105*66bae5e7Schristos 106*66bae5e7SchristosSpecifies the configuration file section to use (overrides 107*66bae5e7SchristosB<default_ca> in the B<ca> section). 108*66bae5e7Schristos 109*66bae5e7Schristos=item B<-in> I<filename> 110*66bae5e7Schristos 111*66bae5e7SchristosAn input filename containing a single certificate request (CSR) to be 112*66bae5e7Schristossigned by the CA. 113*66bae5e7Schristos 114*66bae5e7Schristos=item B<-inform> B<DER>|B<PEM> 115*66bae5e7Schristos 116*66bae5e7SchristosThe format of the data in certificate request input files; 117*66bae5e7Schristosunspecified by default. 118*66bae5e7SchristosSee L<openssl-format-options(1)> for details. 119*66bae5e7Schristos 120*66bae5e7Schristos=item B<-ss_cert> I<filename> 121*66bae5e7Schristos 122*66bae5e7SchristosA single self-signed certificate to be signed by the CA. 123*66bae5e7Schristos 124*66bae5e7Schristos=item B<-spkac> I<filename> 125*66bae5e7Schristos 126*66bae5e7SchristosA file containing a single Netscape signed public key and challenge 127*66bae5e7Schristosand additional field values to be signed by the CA. See the B<SPKAC FORMAT> 128*66bae5e7Schristossection for information on the required input and output format. 129*66bae5e7Schristos 130*66bae5e7Schristos=item B<-infiles> 131*66bae5e7Schristos 132*66bae5e7SchristosIf present this should be the last option, all subsequent arguments 133*66bae5e7Schristosare taken as the names of files containing certificate requests. 134*66bae5e7Schristos 135*66bae5e7Schristos=item B<-out> I<filename> 136*66bae5e7Schristos 137*66bae5e7SchristosThe output file to output certificates to. The default is standard 138*66bae5e7Schristosoutput. The certificate details will also be printed out to this 139*66bae5e7Schristosfile in PEM format (except that B<-spkac> outputs DER format). 140*66bae5e7Schristos 141*66bae5e7Schristos=item B<-outdir> I<directory> 142*66bae5e7Schristos 143*66bae5e7SchristosThe directory to output certificates to. The certificate will be 144*66bae5e7Schristoswritten to a filename consisting of the serial number in hex with 145*66bae5e7SchristosF<.pem> appended. 146*66bae5e7Schristos 147*66bae5e7Schristos=item B<-cert> I<filename> 148*66bae5e7Schristos 149*66bae5e7SchristosThe CA certificate, which must match with B<-keyfile>. 150*66bae5e7Schristos 151*66bae5e7Schristos=item B<-certform> B<DER>|B<PEM>|B<P12> 152*66bae5e7Schristos 153*66bae5e7SchristosThe format of the data in certificate input files; unspecified by default. 154*66bae5e7SchristosSee L<openssl-format-options(1)> for details. 155*66bae5e7Schristos 156*66bae5e7Schristos=item B<-keyfile> I<filename>|I<uri> 157*66bae5e7Schristos 158*66bae5e7SchristosThe CA private key to sign certificate requests with. 159*66bae5e7SchristosThis must match with B<-cert>. 160*66bae5e7Schristos 161*66bae5e7Schristos=item B<-keyform> B<DER>|B<PEM>|B<P12>|B<ENGINE> 162*66bae5e7Schristos 163*66bae5e7SchristosThe format of the private key input file; unspecified by default. 164*66bae5e7SchristosSee L<openssl-format-options(1)> for details. 165*66bae5e7Schristos 166*66bae5e7Schristos=item B<-sigopt> I<nm>:I<v> 167*66bae5e7Schristos 168*66bae5e7SchristosPass options to the signature algorithm during sign operations. 169*66bae5e7SchristosNames and values of these options are algorithm-specific. 170*66bae5e7Schristos 171*66bae5e7Schristos=item B<-vfyopt> I<nm>:I<v> 172*66bae5e7Schristos 173*66bae5e7SchristosPass options to the signature algorithm during verify operations. 174*66bae5e7SchristosNames and values of these options are algorithm-specific. 175*66bae5e7Schristos 176*66bae5e7SchristosThis often needs to be given while signing too, because the self-signature of 177*66bae5e7Schristosa certificate signing request (CSR) is verified against the included public key, 178*66bae5e7Schristosand that verification may need its own set of options. 179*66bae5e7Schristos 180*66bae5e7Schristos=item B<-key> I<password> 181*66bae5e7Schristos 182*66bae5e7Schristos=for openssl foreign manual ps(1) 183*66bae5e7Schristos 184*66bae5e7SchristosThe password used to encrypt the private key. Since on some 185*66bae5e7Schristossystems the command line arguments are visible (e.g., when using 186*66bae5e7SchristosL<ps(1)> on Unix), 187*66bae5e7Schristosthis option should be used with caution. 188*66bae5e7SchristosBetter use B<-passin>. 189*66bae5e7Schristos 190*66bae5e7Schristos=item B<-passin> I<arg> 191*66bae5e7Schristos 192*66bae5e7SchristosThe key password source for key files and certificate PKCS#12 files. 193*66bae5e7SchristosFor more information about the format of B<arg> 194*66bae5e7Schristossee L<openssl-passphrase-options(1)>. 195*66bae5e7Schristos 196*66bae5e7Schristos=item B<-selfsign> 197*66bae5e7Schristos 198*66bae5e7SchristosIndicates the issued certificates are to be signed with the key 199*66bae5e7Schristosthe certificate requests were signed with (given with B<-keyfile>). 200*66bae5e7SchristosCertificate requests signed with a different key are ignored. 201*66bae5e7SchristosIf B<-spkac>, B<-ss_cert> or B<-gencrl> are given, B<-selfsign> is ignored. 202*66bae5e7Schristos 203*66bae5e7SchristosA consequence of using B<-selfsign> is that the self-signed 204*66bae5e7Schristoscertificate appears among the entries in the certificate database 205*66bae5e7Schristos(see the configuration option B<database>), and uses the same 206*66bae5e7Schristosserial number counter as all other certificates sign with the 207*66bae5e7Schristosself-signed certificate. 208*66bae5e7Schristos 209*66bae5e7Schristos=item B<-notext> 210*66bae5e7Schristos 211*66bae5e7SchristosDon't output the text form of a certificate to the output file. 212*66bae5e7Schristos 213*66bae5e7Schristos=item B<-dateopt> 214*66bae5e7Schristos 215*66bae5e7SchristosSpecify the date output format. Values are: rfc_822 and iso_8601. 216*66bae5e7SchristosDefaults to rfc_822. 217*66bae5e7Schristos 218*66bae5e7Schristos=item B<-startdate> I<date> 219*66bae5e7Schristos 220*66bae5e7SchristosThis allows the start date to be explicitly set. The format of the 221*66bae5e7Schristosdate is YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure), or 222*66bae5e7SchristosYYYYMMDDHHMMSSZ (the same as an ASN1 GeneralizedTime structure). In 223*66bae5e7Schristosboth formats, seconds SS and timezone Z must be present. 224*66bae5e7Schristos 225*66bae5e7Schristos=item B<-enddate> I<date> 226*66bae5e7Schristos 227*66bae5e7SchristosThis allows the expiry date to be explicitly set. The format of the 228*66bae5e7Schristosdate is YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure), or 229*66bae5e7SchristosYYYYMMDDHHMMSSZ (the same as an ASN1 GeneralizedTime structure). In 230*66bae5e7Schristosboth formats, seconds SS and timezone Z must be present. 231*66bae5e7Schristos 232*66bae5e7Schristos=item B<-days> I<arg> 233*66bae5e7Schristos 234*66bae5e7SchristosThe number of days to certify the certificate for. 235*66bae5e7Schristos 236*66bae5e7Schristos=item B<-md> I<alg> 237*66bae5e7Schristos 238*66bae5e7SchristosThe message digest to use. 239*66bae5e7SchristosAny digest supported by the L<openssl-dgst(1)> command can be used. For signing 240*66bae5e7Schristosalgorithms that do not support a digest (i.e. Ed25519 and Ed448) any message 241*66bae5e7Schristosdigest that is set is ignored. This option also applies to CRLs. 242*66bae5e7Schristos 243*66bae5e7Schristos=item B<-policy> I<arg> 244*66bae5e7Schristos 245*66bae5e7SchristosThis option defines the CA "policy" to use. This is a section in 246*66bae5e7Schristosthe configuration file which decides which fields should be mandatory 247*66bae5e7Schristosor match the CA certificate. Check out the B<POLICY FORMAT> section 248*66bae5e7Schristosfor more information. 249*66bae5e7Schristos 250*66bae5e7Schristos=item B<-msie_hack> 251*66bae5e7Schristos 252*66bae5e7SchristosThis is a deprecated option to make this command work with very old versions 253*66bae5e7Schristosof the IE certificate enrollment control "certenr3". It used UniversalStrings 254*66bae5e7Schristosfor almost everything. Since the old control has various security bugs 255*66bae5e7Schristosits use is strongly discouraged. 256*66bae5e7Schristos 257*66bae5e7Schristos=item B<-preserveDN> 258*66bae5e7Schristos 259*66bae5e7SchristosNormally the DN order of a certificate is the same as the order of the 260*66bae5e7Schristosfields in the relevant policy section. When this option is set the order 261*66bae5e7Schristosis the same as the request. This is largely for compatibility with the 262*66bae5e7Schristosolder IE enrollment control which would only accept certificates if their 263*66bae5e7SchristosDNs match the order of the request. This is not needed for Xenroll. 264*66bae5e7Schristos 265*66bae5e7Schristos=item B<-noemailDN> 266*66bae5e7Schristos 267*66bae5e7SchristosThe DN of a certificate can contain the EMAIL field if present in the 268*66bae5e7Schristosrequest DN, however, it is good policy just having the e-mail set into 269*66bae5e7Schristosthe altName extension of the certificate. When this option is set the 270*66bae5e7SchristosEMAIL field is removed from the certificate' subject and set only in 271*66bae5e7Schristosthe, eventually present, extensions. The B<email_in_dn> keyword can be 272*66bae5e7Schristosused in the configuration file to enable this behaviour. 273*66bae5e7Schristos 274*66bae5e7Schristos=item B<-batch> 275*66bae5e7Schristos 276*66bae5e7SchristosThis sets the batch mode. In this mode no questions will be asked 277*66bae5e7Schristosand all certificates will be certified automatically. 278*66bae5e7Schristos 279*66bae5e7Schristos=item B<-extensions> I<section> 280*66bae5e7Schristos 281*66bae5e7SchristosThe section of the configuration file containing certificate extensions 282*66bae5e7Schristosto be added when a certificate is issued (defaults to B<x509_extensions> 283*66bae5e7Schristosunless the B<-extfile> option is used). 284*66bae5e7SchristosIf no X.509 extensions are specified then a V1 certificate is created, 285*66bae5e7Schristoselse a V3 certificate is created. 286*66bae5e7SchristosSee the L<x509v3_config(5)> manual page for details of the 287*66bae5e7Schristosextension section format. 288*66bae5e7Schristos 289*66bae5e7Schristos=item B<-extfile> I<file> 290*66bae5e7Schristos 291*66bae5e7SchristosAn additional configuration file to read certificate extensions from 292*66bae5e7Schristos(using the default section unless the B<-extensions> option is also 293*66bae5e7Schristosused). 294*66bae5e7Schristos 295*66bae5e7Schristos=item B<-subj> I<arg> 296*66bae5e7Schristos 297*66bae5e7SchristosSupersedes subject name given in the request. 298*66bae5e7Schristos 299*66bae5e7SchristosThe arg must be formatted as C</type0=value0/type1=value1/type2=...>. 300*66bae5e7SchristosSpecial characters may be escaped by C<\> (backslash), whitespace is retained. 301*66bae5e7SchristosEmpty values are permitted, but the corresponding type will not be included 302*66bae5e7Schristosin the resulting certificate. 303*66bae5e7SchristosGiving a single C</> will lead to an empty sequence of RDNs (a NULL-DN). 304*66bae5e7SchristosMulti-valued RDNs can be formed by placing a C<+> character instead of a C</> 305*66bae5e7Schristosbetween the AttributeValueAssertions (AVAs) that specify the members of the set. 306*66bae5e7SchristosExample: 307*66bae5e7Schristos 308*66bae5e7SchristosC</DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe> 309*66bae5e7Schristos 310*66bae5e7Schristos=item B<-utf8> 311*66bae5e7Schristos 312*66bae5e7SchristosThis option causes field values to be interpreted as UTF8 strings, by 313*66bae5e7Schristosdefault they are interpreted as ASCII. This means that the field 314*66bae5e7Schristosvalues, whether prompted from a terminal or obtained from a 315*66bae5e7Schristosconfiguration file, must be valid UTF8 strings. 316*66bae5e7Schristos 317*66bae5e7Schristos=item B<-create_serial> 318*66bae5e7Schristos 319*66bae5e7SchristosIf reading serial from the text file as specified in the configuration 320*66bae5e7Schristosfails, specifying this option creates a new random serial to be used as next 321*66bae5e7Schristosserial number. 322*66bae5e7SchristosTo get random serial numbers, use the B<-rand_serial> flag instead; this 323*66bae5e7Schristosshould only be used for simple error-recovery. 324*66bae5e7Schristos 325*66bae5e7Schristos=item B<-rand_serial> 326*66bae5e7Schristos 327*66bae5e7SchristosGenerate a large random number to use as the serial number. 328*66bae5e7SchristosThis overrides any option or configuration to use a serial number file. 329*66bae5e7Schristos 330*66bae5e7Schristos=item B<-multivalue-rdn> 331*66bae5e7Schristos 332*66bae5e7SchristosThis option has been deprecated and has no effect. 333*66bae5e7Schristos 334*66bae5e7Schristos{- $OpenSSL::safe::opt_r_item -} 335*66bae5e7Schristos 336*66bae5e7Schristos{- $OpenSSL::safe::opt_engine_item -} 337*66bae5e7Schristos 338*66bae5e7Schristos{- $OpenSSL::safe::opt_provider_item -} 339*66bae5e7Schristos 340*66bae5e7Schristos=back 341*66bae5e7Schristos 342*66bae5e7Schristos=head1 CRL OPTIONS 343*66bae5e7Schristos 344*66bae5e7Schristos=over 4 345*66bae5e7Schristos 346*66bae5e7Schristos=item B<-gencrl> 347*66bae5e7Schristos 348*66bae5e7SchristosThis option generates a CRL based on information in the index file. 349*66bae5e7Schristos 350*66bae5e7Schristos=item B<-crl_lastupdate> I<time> 351*66bae5e7Schristos 352*66bae5e7SchristosAllows the value of the CRL's lastUpdate field to be explicitly set; if 353*66bae5e7Schristosthis option is not present, the current time is used. Accepts times in 354*66bae5e7SchristosYYMMDDHHMMSSZ format (the same as an ASN1 UTCTime structure) or 355*66bae5e7SchristosYYYYMMDDHHMMSSZ format (the same as an ASN1 GeneralizedTime structure). 356*66bae5e7Schristos 357*66bae5e7Schristos=item B<-crl_nextupdate> I<time> 358*66bae5e7Schristos 359*66bae5e7SchristosAllows the value of the CRL's nextUpdate field to be explicitly set; if 360*66bae5e7Schristosthis option is present, any values given for B<-crldays>, B<-crlhours> 361*66bae5e7Schristosand B<-crlsec> are ignored. Accepts times in the same formats as 362*66bae5e7SchristosB<-crl_lastupdate>. 363*66bae5e7Schristos 364*66bae5e7Schristos=item B<-crldays> I<num> 365*66bae5e7Schristos 366*66bae5e7SchristosThe number of days before the next CRL is due. That is the days from 367*66bae5e7Schristosnow to place in the CRL nextUpdate field. 368*66bae5e7Schristos 369*66bae5e7Schristos=item B<-crlhours> I<num> 370*66bae5e7Schristos 371*66bae5e7SchristosThe number of hours before the next CRL is due. 372*66bae5e7Schristos 373*66bae5e7Schristos=item B<-crlsec> I<num> 374*66bae5e7Schristos 375*66bae5e7SchristosThe number of seconds before the next CRL is due. 376*66bae5e7Schristos 377*66bae5e7Schristos=item B<-revoke> I<filename> 378*66bae5e7Schristos 379*66bae5e7SchristosA filename containing a certificate to revoke. 380*66bae5e7Schristos 381*66bae5e7Schristos=item B<-valid> I<filename> 382*66bae5e7Schristos 383*66bae5e7SchristosA filename containing a certificate to add a Valid certificate entry. 384*66bae5e7Schristos 385*66bae5e7Schristos=item B<-status> I<serial> 386*66bae5e7Schristos 387*66bae5e7SchristosDisplays the revocation status of the certificate with the specified 388*66bae5e7Schristosserial number and exits. 389*66bae5e7Schristos 390*66bae5e7Schristos=item B<-updatedb> 391*66bae5e7Schristos 392*66bae5e7SchristosUpdates the database index to purge expired certificates. 393*66bae5e7Schristos 394*66bae5e7Schristos=item B<-crl_reason> I<reason> 395*66bae5e7Schristos 396*66bae5e7SchristosRevocation reason, where I<reason> is one of: B<unspecified>, B<keyCompromise>, 397*66bae5e7SchristosB<CACompromise>, B<affiliationChanged>, B<superseded>, B<cessationOfOperation>, 398*66bae5e7SchristosB<certificateHold> or B<removeFromCRL>. The matching of I<reason> is case 399*66bae5e7Schristosinsensitive. Setting any revocation reason will make the CRL v2. 400*66bae5e7Schristos 401*66bae5e7SchristosIn practice B<removeFromCRL> is not particularly useful because it is only used 402*66bae5e7Schristosin delta CRLs which are not currently implemented. 403*66bae5e7Schristos 404*66bae5e7Schristos=item B<-crl_hold> I<instruction> 405*66bae5e7Schristos 406*66bae5e7SchristosThis sets the CRL revocation reason code to B<certificateHold> and the hold 407*66bae5e7Schristosinstruction to I<instruction> which must be an OID. Although any OID can be 408*66bae5e7Schristosused only B<holdInstructionNone> (the use of which is discouraged by RFC2459) 409*66bae5e7SchristosB<holdInstructionCallIssuer> or B<holdInstructionReject> will normally be used. 410*66bae5e7Schristos 411*66bae5e7Schristos=item B<-crl_compromise> I<time> 412*66bae5e7Schristos 413*66bae5e7SchristosThis sets the revocation reason to B<keyCompromise> and the compromise time to 414*66bae5e7SchristosI<time>. I<time> should be in GeneralizedTime format that is I<YYYYMMDDHHMMSSZ>. 415*66bae5e7Schristos 416*66bae5e7Schristos=item B<-crl_CA_compromise> I<time> 417*66bae5e7Schristos 418*66bae5e7SchristosThis is the same as B<crl_compromise> except the revocation reason is set to 419*66bae5e7SchristosB<CACompromise>. 420*66bae5e7Schristos 421*66bae5e7Schristos=item B<-crlexts> I<section> 422*66bae5e7Schristos 423*66bae5e7SchristosThe section of the configuration file containing CRL extensions to 424*66bae5e7Schristosinclude. If no CRL extension section is present then a V1 CRL is 425*66bae5e7Schristoscreated, if the CRL extension section is present (even if it is 426*66bae5e7Schristosempty) then a V2 CRL is created. The CRL extensions specified are 427*66bae5e7SchristosCRL extensions and B<not> CRL entry extensions. It should be noted 428*66bae5e7Schristosthat some software (for example Netscape) can't handle V2 CRLs. See 429*66bae5e7SchristosL<x509v3_config(5)> manual page for details of the 430*66bae5e7Schristosextension section format. 431*66bae5e7Schristos 432*66bae5e7Schristos=back 433*66bae5e7Schristos 434*66bae5e7Schristos=head1 CONFIGURATION FILE OPTIONS 435*66bae5e7Schristos 436*66bae5e7SchristosThe section of the configuration file containing options for this command 437*66bae5e7Schristosis found as follows: If the B<-name> command line option is used, 438*66bae5e7Schristosthen it names the section to be used. Otherwise the section to 439*66bae5e7Schristosbe used must be named in the B<default_ca> option of the B<ca> section 440*66bae5e7Schristosof the configuration file (or in the default section of the 441*66bae5e7Schristosconfiguration file). Besides B<default_ca>, the following options are 442*66bae5e7Schristosread directly from the B<ca> section: 443*66bae5e7Schristos RANDFILE 444*66bae5e7Schristos preserve 445*66bae5e7Schristos msie_hack 446*66bae5e7SchristosWith the exception of B<RANDFILE>, this is probably a bug and may 447*66bae5e7Schristoschange in future releases. 448*66bae5e7Schristos 449*66bae5e7SchristosMany of the configuration file options are identical to command line 450*66bae5e7Schristosoptions. Where the option is present in the configuration file 451*66bae5e7Schristosand the command line the command line value is used. Where an 452*66bae5e7Schristosoption is described as mandatory then it must be present in 453*66bae5e7Schristosthe configuration file or the command line equivalent (if 454*66bae5e7Schristosany) used. 455*66bae5e7Schristos 456*66bae5e7Schristos=over 4 457*66bae5e7Schristos 458*66bae5e7Schristos=item B<oid_file> 459*66bae5e7Schristos 460*66bae5e7SchristosThis specifies a file containing additional B<OBJECT IDENTIFIERS>. 461*66bae5e7SchristosEach line of the file should consist of the numerical form of the 462*66bae5e7Schristosobject identifier followed by whitespace then the short name followed 463*66bae5e7Schristosby whitespace and finally the long name. 464*66bae5e7Schristos 465*66bae5e7Schristos=item B<oid_section> 466*66bae5e7Schristos 467*66bae5e7SchristosThis specifies a section in the configuration file containing extra 468*66bae5e7Schristosobject identifiers. Each line should consist of the short name of the 469*66bae5e7Schristosobject identifier followed by B<=> and the numerical form. The short 470*66bae5e7Schristosand long names are the same when this option is used. 471*66bae5e7Schristos 472*66bae5e7Schristos=item B<new_certs_dir> 473*66bae5e7Schristos 474*66bae5e7SchristosThe same as the B<-outdir> command line option. It specifies 475*66bae5e7Schristosthe directory where new certificates will be placed. Mandatory. 476*66bae5e7Schristos 477*66bae5e7Schristos=item B<certificate> 478*66bae5e7Schristos 479*66bae5e7SchristosThe same as B<-cert>. It gives the file containing the CA 480*66bae5e7Schristoscertificate. Mandatory. 481*66bae5e7Schristos 482*66bae5e7Schristos=item B<private_key> 483*66bae5e7Schristos 484*66bae5e7SchristosSame as the B<-keyfile> option. The file containing the 485*66bae5e7SchristosCA private key. Mandatory. 486*66bae5e7Schristos 487*66bae5e7Schristos=item B<RANDFILE> 488*66bae5e7Schristos 489*66bae5e7SchristosAt startup the specified file is loaded into the random number generator, 490*66bae5e7Schristosand at exit 256 bytes will be written to it. (Note: Using a RANDFILE is 491*66bae5e7Schristosnot necessary anymore, see the L</HISTORY> section. 492*66bae5e7Schristos 493*66bae5e7Schristos=item B<default_days> 494*66bae5e7Schristos 495*66bae5e7SchristosThe same as the B<-days> option. The number of days to certify 496*66bae5e7Schristosa certificate for. 497*66bae5e7Schristos 498*66bae5e7Schristos=item B<default_startdate> 499*66bae5e7Schristos 500*66bae5e7SchristosThe same as the B<-startdate> option. The start date to certify 501*66bae5e7Schristosa certificate for. If not set the current time is used. 502*66bae5e7Schristos 503*66bae5e7Schristos=item B<default_enddate> 504*66bae5e7Schristos 505*66bae5e7SchristosThe same as the B<-enddate> option. Either this option or 506*66bae5e7SchristosB<default_days> (or the command line equivalents) must be 507*66bae5e7Schristospresent. 508*66bae5e7Schristos 509*66bae5e7Schristos=item B<default_crl_hours default_crl_days> 510*66bae5e7Schristos 511*66bae5e7SchristosThe same as the B<-crlhours> and the B<-crldays> options. These 512*66bae5e7Schristoswill only be used if neither command line option is present. At 513*66bae5e7Schristosleast one of these must be present to generate a CRL. 514*66bae5e7Schristos 515*66bae5e7Schristos=item B<default_md> 516*66bae5e7Schristos 517*66bae5e7SchristosThe same as the B<-md> option. Mandatory except where the signing algorithm does 518*66bae5e7Schristosnot require a digest (i.e. Ed25519 and Ed448). 519*66bae5e7Schristos 520*66bae5e7Schristos=item B<database> 521*66bae5e7Schristos 522*66bae5e7SchristosThe text database file to use. Mandatory. This file must be present 523*66bae5e7Schristosthough initially it will be empty. 524*66bae5e7Schristos 525*66bae5e7Schristos=item B<unique_subject> 526*66bae5e7Schristos 527*66bae5e7SchristosIf the value B<yes> is given, the valid certificate entries in the 528*66bae5e7Schristosdatabase must have unique subjects. if the value B<no> is given, 529*66bae5e7Schristosseveral valid certificate entries may have the exact same subject. 530*66bae5e7SchristosThe default value is B<yes>, to be compatible with older (pre 0.9.8) 531*66bae5e7Schristosversions of OpenSSL. However, to make CA certificate roll-over easier, 532*66bae5e7Schristosit's recommended to use the value B<no>, especially if combined with 533*66bae5e7Schristosthe B<-selfsign> command line option. 534*66bae5e7Schristos 535*66bae5e7SchristosNote that it is valid in some circumstances for certificates to be created 536*66bae5e7Schristoswithout any subject. In the case where there are multiple certificates without 537*66bae5e7Schristossubjects this does not count as a duplicate. 538*66bae5e7Schristos 539*66bae5e7Schristos=item B<serial> 540*66bae5e7Schristos 541*66bae5e7SchristosA text file containing the next serial number to use in hex. Mandatory. 542*66bae5e7SchristosThis file must be present and contain a valid serial number. 543*66bae5e7Schristos 544*66bae5e7Schristos=item B<crlnumber> 545*66bae5e7Schristos 546*66bae5e7SchristosA text file containing the next CRL number to use in hex. The crl number 547*66bae5e7Schristoswill be inserted in the CRLs only if this file exists. If this file is 548*66bae5e7Schristospresent, it must contain a valid CRL number. 549*66bae5e7Schristos 550*66bae5e7Schristos=item B<x509_extensions> 551*66bae5e7Schristos 552*66bae5e7SchristosA fallback to the B<-extensions> option. 553*66bae5e7Schristos 554*66bae5e7Schristos=item B<crl_extensions> 555*66bae5e7Schristos 556*66bae5e7SchristosA fallback to the B<-crlexts> option. 557*66bae5e7Schristos 558*66bae5e7Schristos=item B<preserve> 559*66bae5e7Schristos 560*66bae5e7SchristosThe same as B<-preserveDN> 561*66bae5e7Schristos 562*66bae5e7Schristos=item B<email_in_dn> 563*66bae5e7Schristos 564*66bae5e7SchristosThe same as B<-noemailDN>. If you want the EMAIL field to be removed 565*66bae5e7Schristosfrom the DN of the certificate simply set this to 'no'. If not present 566*66bae5e7Schristosthe default is to allow for the EMAIL filed in the certificate's DN. 567*66bae5e7Schristos 568*66bae5e7Schristos=item B<msie_hack> 569*66bae5e7Schristos 570*66bae5e7SchristosThe same as B<-msie_hack> 571*66bae5e7Schristos 572*66bae5e7Schristos=item B<policy> 573*66bae5e7Schristos 574*66bae5e7SchristosThe same as B<-policy>. Mandatory. See the B<POLICY FORMAT> section 575*66bae5e7Schristosfor more information. 576*66bae5e7Schristos 577*66bae5e7Schristos=item B<name_opt>, B<cert_opt> 578*66bae5e7Schristos 579*66bae5e7SchristosThese options allow the format used to display the certificate details 580*66bae5e7Schristoswhen asking the user to confirm signing. All the options supported by 581*66bae5e7Schristosthe B<x509> utilities B<-nameopt> and B<-certopt> switches can be used 582*66bae5e7Schristoshere, except the B<no_signame> and B<no_sigdump> are permanently set 583*66bae5e7Schristosand cannot be disabled (this is because the certificate signature cannot 584*66bae5e7Schristosbe displayed because the certificate has not been signed at this point). 585*66bae5e7Schristos 586*66bae5e7SchristosFor convenience the values B<ca_default> are accepted by both to produce 587*66bae5e7Schristosa reasonable output. 588*66bae5e7Schristos 589*66bae5e7SchristosIf neither option is present the format used in earlier versions of 590*66bae5e7SchristosOpenSSL is used. Use of the old format is B<strongly> discouraged because 591*66bae5e7Schristosit only displays fields mentioned in the B<policy> section, mishandles 592*66bae5e7Schristosmulticharacter string types and does not display extensions. 593*66bae5e7Schristos 594*66bae5e7Schristos=item B<copy_extensions> 595*66bae5e7Schristos 596*66bae5e7SchristosDetermines how extensions in certificate requests should be handled. 597*66bae5e7SchristosIf set to B<none> or this option is not present then extensions are 598*66bae5e7Schristosignored and not copied to the certificate. If set to B<copy> then any 599*66bae5e7Schristosextensions present in the request that are not already present are copied 600*66bae5e7Schristosto the certificate. If set to B<copyall> then all extensions in the 601*66bae5e7Schristosrequest are copied to the certificate: if the extension is already present 602*66bae5e7Schristosin the certificate it is deleted first. See the B<WARNINGS> section before 603*66bae5e7Schristosusing this option. 604*66bae5e7Schristos 605*66bae5e7SchristosThe main use of this option is to allow a certificate request to supply 606*66bae5e7Schristosvalues for certain extensions such as subjectAltName. 607*66bae5e7Schristos 608*66bae5e7Schristos=back 609*66bae5e7Schristos 610*66bae5e7Schristos=head1 POLICY FORMAT 611*66bae5e7Schristos 612*66bae5e7SchristosThe policy section consists of a set of variables corresponding to 613*66bae5e7Schristoscertificate DN fields. If the value is "match" then the field value 614*66bae5e7Schristosmust match the same field in the CA certificate. If the value is 615*66bae5e7Schristos"supplied" then it must be present. If the value is "optional" then 616*66bae5e7Schristosit may be present. Any fields not mentioned in the policy section 617*66bae5e7Schristosare silently deleted, unless the B<-preserveDN> option is set but 618*66bae5e7Schristosthis can be regarded more of a quirk than intended behaviour. 619*66bae5e7Schristos 620*66bae5e7Schristos=head1 SPKAC FORMAT 621*66bae5e7Schristos 622*66bae5e7SchristosThe input to the B<-spkac> command line option is a Netscape 623*66bae5e7Schristossigned public key and challenge. This will usually come from 624*66bae5e7Schristosthe B<KEYGEN> tag in an HTML form to create a new private key. 625*66bae5e7SchristosIt is however possible to create SPKACs using L<openssl-spkac(1)>. 626*66bae5e7Schristos 627*66bae5e7SchristosThe file should contain the variable SPKAC set to the value of 628*66bae5e7Schristosthe SPKAC and also the required DN components as name value pairs. 629*66bae5e7SchristosIf you need to include the same component twice then it can be 630*66bae5e7Schristospreceded by a number and a '.'. 631*66bae5e7Schristos 632*66bae5e7SchristosWhen processing SPKAC format, the output is DER if the B<-out> 633*66bae5e7Schristosflag is used, but PEM format if sending to stdout or the B<-outdir> 634*66bae5e7Schristosflag is used. 635*66bae5e7Schristos 636*66bae5e7Schristos=head1 EXAMPLES 637*66bae5e7Schristos 638*66bae5e7SchristosNote: these examples assume that the directory structure this command 639*66bae5e7Schristosassumes is already set up and the relevant files already exist. This 640*66bae5e7Schristosusually involves creating a CA certificate and private key with 641*66bae5e7SchristosL<openssl-req(1)>, a serial number file and an empty index file and 642*66bae5e7Schristosplacing them in the relevant directories. 643*66bae5e7Schristos 644*66bae5e7SchristosTo use the sample configuration file below the directories F<demoCA>, 645*66bae5e7SchristosF<demoCA/private> and F<demoCA/newcerts> would be created. The CA 646*66bae5e7Schristoscertificate would be copied to F<demoCA/cacert.pem> and its private 647*66bae5e7Schristoskey to F<demoCA/private/cakey.pem>. A file F<demoCA/serial> would be 648*66bae5e7Schristoscreated containing for example "01" and the empty index file 649*66bae5e7SchristosF<demoCA/index.txt>. 650*66bae5e7Schristos 651*66bae5e7Schristos 652*66bae5e7SchristosSign a certificate request: 653*66bae5e7Schristos 654*66bae5e7Schristos openssl ca -in req.pem -out newcert.pem 655*66bae5e7Schristos 656*66bae5e7SchristosSign an SM2 certificate request: 657*66bae5e7Schristos 658*66bae5e7Schristos openssl ca -in sm2.csr -out sm2.crt -md sm3 \ 659*66bae5e7Schristos -sigopt "distid:1234567812345678" \ 660*66bae5e7Schristos -vfyopt "distid:1234567812345678" 661*66bae5e7Schristos 662*66bae5e7SchristosSign a certificate request, using CA extensions: 663*66bae5e7Schristos 664*66bae5e7Schristos openssl ca -in req.pem -extensions v3_ca -out newcert.pem 665*66bae5e7Schristos 666*66bae5e7SchristosGenerate a CRL 667*66bae5e7Schristos 668*66bae5e7Schristos openssl ca -gencrl -out crl.pem 669*66bae5e7Schristos 670*66bae5e7SchristosSign several requests: 671*66bae5e7Schristos 672*66bae5e7Schristos openssl ca -infiles req1.pem req2.pem req3.pem 673*66bae5e7Schristos 674*66bae5e7SchristosCertify a Netscape SPKAC: 675*66bae5e7Schristos 676*66bae5e7Schristos openssl ca -spkac spkac.txt 677*66bae5e7Schristos 678*66bae5e7SchristosA sample SPKAC file (the SPKAC line has been truncated for clarity): 679*66bae5e7Schristos 680*66bae5e7Schristos SPKAC=MIG0MGAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAn7PDhCeV/xIxUg8V70YRxK2A5 681*66bae5e7Schristos CN=Steve Test 682*66bae5e7Schristos emailAddress=steve@openssl.org 683*66bae5e7Schristos 0.OU=OpenSSL Group 684*66bae5e7Schristos 1.OU=Another Group 685*66bae5e7Schristos 686*66bae5e7SchristosA sample configuration file with the relevant sections for this command: 687*66bae5e7Schristos 688*66bae5e7Schristos [ ca ] 689*66bae5e7Schristos default_ca = CA_default # The default ca section 690*66bae5e7Schristos 691*66bae5e7Schristos [ CA_default ] 692*66bae5e7Schristos 693*66bae5e7Schristos dir = ./demoCA # top dir 694*66bae5e7Schristos database = $dir/index.txt # index file. 695*66bae5e7Schristos new_certs_dir = $dir/newcerts # new certs dir 696*66bae5e7Schristos 697*66bae5e7Schristos certificate = $dir/cacert.pem # The CA cert 698*66bae5e7Schristos serial = $dir/serial # serial no file 699*66bae5e7Schristos #rand_serial = yes # for random serial#'s 700*66bae5e7Schristos private_key = $dir/private/cakey.pem# CA private key 701*66bae5e7Schristos 702*66bae5e7Schristos default_days = 365 # how long to certify for 703*66bae5e7Schristos default_crl_days= 30 # how long before next CRL 704*66bae5e7Schristos default_md = md5 # md to use 705*66bae5e7Schristos 706*66bae5e7Schristos policy = policy_any # default policy 707*66bae5e7Schristos email_in_dn = no # Don't add the email into cert DN 708*66bae5e7Schristos 709*66bae5e7Schristos name_opt = ca_default # Subject name display option 710*66bae5e7Schristos cert_opt = ca_default # Certificate display option 711*66bae5e7Schristos copy_extensions = none # Don't copy extensions from request 712*66bae5e7Schristos 713*66bae5e7Schristos [ policy_any ] 714*66bae5e7Schristos countryName = supplied 715*66bae5e7Schristos stateOrProvinceName = optional 716*66bae5e7Schristos organizationName = optional 717*66bae5e7Schristos organizationalUnitName = optional 718*66bae5e7Schristos commonName = supplied 719*66bae5e7Schristos emailAddress = optional 720*66bae5e7Schristos 721*66bae5e7Schristos=head1 FILES 722*66bae5e7Schristos 723*66bae5e7SchristosNote: the location of all files can change either by compile time options, 724*66bae5e7Schristosconfiguration file entries, environment variables or command line options. 725*66bae5e7SchristosThe values below reflect the default values. 726*66bae5e7Schristos 727*66bae5e7Schristos /usr/local/ssl/lib/openssl.cnf - master configuration file 728*66bae5e7Schristos ./demoCA - main CA directory 729*66bae5e7Schristos ./demoCA/cacert.pem - CA certificate 730*66bae5e7Schristos ./demoCA/private/cakey.pem - CA private key 731*66bae5e7Schristos ./demoCA/serial - CA serial number file 732*66bae5e7Schristos ./demoCA/serial.old - CA serial number backup file 733*66bae5e7Schristos ./demoCA/index.txt - CA text database file 734*66bae5e7Schristos ./demoCA/index.txt.old - CA text database backup file 735*66bae5e7Schristos ./demoCA/certs - certificate output file 736*66bae5e7Schristos 737*66bae5e7Schristos=head1 RESTRICTIONS 738*66bae5e7Schristos 739*66bae5e7SchristosThe text database index file is a critical part of the process and 740*66bae5e7Schristosif corrupted it can be difficult to fix. It is theoretically possible 741*66bae5e7Schristosto rebuild the index file from all the issued certificates and a current 742*66bae5e7SchristosCRL: however there is no option to do this. 743*66bae5e7Schristos 744*66bae5e7SchristosV2 CRL features like delta CRLs are not currently supported. 745*66bae5e7Schristos 746*66bae5e7SchristosAlthough several requests can be input and handled at once it is only 747*66bae5e7Schristospossible to include one SPKAC or self-signed certificate. 748*66bae5e7Schristos 749*66bae5e7Schristos=head1 BUGS 750*66bae5e7Schristos 751*66bae5e7SchristosThis command is quirky and at times downright unfriendly. 752*66bae5e7Schristos 753*66bae5e7SchristosThe use of an in-memory text database can cause problems when large 754*66bae5e7Schristosnumbers of certificates are present because, as the name implies 755*66bae5e7Schristosthe database has to be kept in memory. 756*66bae5e7Schristos 757*66bae5e7SchristosThis command really needs rewriting or the required functionality 758*66bae5e7Schristosexposed at either a command or interface level so that a more user-friendly 759*66bae5e7Schristosreplacement could handle things properly. The script 760*66bae5e7SchristosB<CA.pl> helps a little but not very much. 761*66bae5e7Schristos 762*66bae5e7SchristosAny fields in a request that are not present in a policy are silently 763*66bae5e7Schristosdeleted. This does not happen if the B<-preserveDN> option is used. To 764*66bae5e7Schristosenforce the absence of the EMAIL field within the DN, as suggested by 765*66bae5e7SchristosRFCs, regardless the contents of the request' subject the B<-noemailDN> 766*66bae5e7Schristosoption can be used. The behaviour should be more friendly and 767*66bae5e7Schristosconfigurable. 768*66bae5e7Schristos 769*66bae5e7SchristosCanceling some commands by refusing to certify a certificate can 770*66bae5e7Schristoscreate an empty file. 771*66bae5e7Schristos 772*66bae5e7Schristos=head1 WARNINGS 773*66bae5e7Schristos 774*66bae5e7SchristosThis command was originally meant as an example of how to do things in a CA. 775*66bae5e7SchristosIts code does not have production quality. 776*66bae5e7SchristosIt was not supposed to be used as a full blown CA itself, 777*66bae5e7Schristosnevertheless some people are using it for this purpose at least internally. 778*66bae5e7SchristosWhen doing so, specific care should be taken to 779*66bae5e7Schristosproperly secure the private key(s) used for signing certificates. 780*66bae5e7SchristosIt is advisable to keep them in a secure HW storage such as a smart card or HSM 781*66bae5e7Schristosand access them via a suitable engine or crypto provider. 782*66bae5e7Schristos 783*66bae5e7SchristosThis command command is effectively a single user command: no locking 784*66bae5e7Schristosis done on the various files and attempts to run more than one B<openssl ca> 785*66bae5e7Schristoscommand on the same database can have unpredictable results. 786*66bae5e7Schristos 787*66bae5e7SchristosThe B<copy_extensions> option should be used with caution. If care is 788*66bae5e7Schristosnot taken then it can be a security risk. For example if a certificate 789*66bae5e7Schristosrequest contains a basicConstraints extension with CA:TRUE and the 790*66bae5e7SchristosB<copy_extensions> value is set to B<copyall> and the user does not spot 791*66bae5e7Schristosthis when the certificate is displayed then this will hand the requester 792*66bae5e7Schristosa valid CA certificate. 793*66bae5e7SchristosThis situation can be avoided by setting B<copy_extensions> to B<copy> 794*66bae5e7Schristosand including basicConstraints with CA:FALSE in the configuration file. 795*66bae5e7SchristosThen if the request contains a basicConstraints extension it will be 796*66bae5e7Schristosignored. 797*66bae5e7Schristos 798*66bae5e7SchristosIt is advisable to also include values for other extensions such 799*66bae5e7Schristosas B<keyUsage> to prevent a request supplying its own values. 800*66bae5e7Schristos 801*66bae5e7SchristosAdditional restrictions can be placed on the CA certificate itself. 802*66bae5e7SchristosFor example if the CA certificate has: 803*66bae5e7Schristos 804*66bae5e7Schristos basicConstraints = CA:TRUE, pathlen:0 805*66bae5e7Schristos 806*66bae5e7Schristosthen even if a certificate is issued with CA:TRUE it will not be valid. 807*66bae5e7Schristos 808*66bae5e7Schristos=head1 HISTORY 809*66bae5e7Schristos 810*66bae5e7SchristosSince OpenSSL 1.1.1, the program follows RFC5280. Specifically, 811*66bae5e7Schristoscertificate validity period (specified by any of B<-startdate>, 812*66bae5e7SchristosB<-enddate> and B<-days>) and CRL last/next update time (specified by 813*66bae5e7Schristosany of B<-crl_lastupdate>, B<-crl_nextupdate>, B<-crldays>, B<-crlhours> 814*66bae5e7Schristosand B<-crlsec>) will be encoded as UTCTime if the dates are 815*66bae5e7Schristosearlier than year 2049 (included), and as GeneralizedTime if the dates 816*66bae5e7Schristosare in year 2050 or later. 817*66bae5e7Schristos 818*66bae5e7SchristosOpenSSL 1.1.1 introduced a new random generator (CSPRNG) with an improved 819*66bae5e7Schristosseeding mechanism. The new seeding mechanism makes it unnecessary to 820*66bae5e7Schristosdefine a RANDFILE for saving and restoring randomness. This option is 821*66bae5e7Schristosretained mainly for compatibility reasons. 822*66bae5e7Schristos 823*66bae5e7SchristosThe B<-section> option was added in OpenSSL 3.0.0. 824*66bae5e7Schristos 825*66bae5e7SchristosThe B<-multivalue-rdn> option has become obsolete in OpenSSL 3.0.0 and 826*66bae5e7Schristoshas no effect. 827*66bae5e7Schristos 828*66bae5e7SchristosThe B<-engine> option was deprecated in OpenSSL 3.0. 829*66bae5e7Schristos 830*66bae5e7Schristos=head1 SEE ALSO 831*66bae5e7Schristos 832*66bae5e7SchristosL<openssl(1)>, 833*66bae5e7SchristosL<openssl-req(1)>, 834*66bae5e7SchristosL<openssl-spkac(1)>, 835*66bae5e7SchristosL<openssl-x509(1)>, 836*66bae5e7SchristosL<CA.pl(1)>, 837*66bae5e7SchristosL<config(5)>, 838*66bae5e7SchristosL<x509v3_config(5)> 839*66bae5e7Schristos 840*66bae5e7Schristos=head1 COPYRIGHT 841*66bae5e7Schristos 842*66bae5e7SchristosCopyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. 843*66bae5e7Schristos 844*66bae5e7SchristosLicensed under the Apache License 2.0 (the "License"). You may not use 845*66bae5e7Schristosthis file except in compliance with the License. You can obtain a copy 846*66bae5e7Schristosin the file LICENSE in the source distribution or at 847*66bae5e7SchristosL<https://www.openssl.org/source/license.html>. 848*66bae5e7Schristos 849*66bae5e7Schristos=cut 850