diff options
Diffstat (limited to 'upstream/debian-bookworm/man1/openssl-x509.1ssl')
-rw-r--r-- | upstream/debian-bookworm/man1/openssl-x509.1ssl | 843 |
1 files changed, 843 insertions, 0 deletions
diff --git a/upstream/debian-bookworm/man1/openssl-x509.1ssl b/upstream/debian-bookworm/man1/openssl-x509.1ssl new file mode 100644 index 00000000..1d6bb360 --- /dev/null +++ b/upstream/debian-bookworm/man1/openssl-x509.1ssl @@ -0,0 +1,843 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "OPENSSL-X509 1SSL" +.TH OPENSSL-X509 1SSL "2023-10-23" "3.0.11" "OpenSSL" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +openssl\-x509 \- Certificate display and signing command +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBopenssl\fR \fBx509\fR +[\fB\-help\fR] +[\fB\-in\fR \fIfilename\fR|\fIuri\fR] +[\fB\-passin\fR \fIarg\fR] +[\fB\-new\fR] +[\fB\-x509toreq\fR] +[\fB\-req\fR] +[\fB\-copy_extensions\fR \fIarg\fR] +[\fB\-inform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR] +[\fB\-vfyopt\fR \fInm\fR:\fIv\fR] +[\fB\-key\fR \fIfilename\fR|\fIuri\fR] +[\fB\-keyform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR|\fBP12\fR|\fB\s-1ENGINE\s0\fR] +[\fB\-signkey\fR \fIfilename\fR|\fIuri\fR] +[\fB\-out\fR \fIfilename\fR] +[\fB\-outform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR] +[\fB\-nocert\fR] +[\fB\-noout\fR] +[\fB\-dateopt\fR] +[\fB\-text\fR] +[\fB\-certopt\fR \fIoption\fR] +[\fB\-fingerprint\fR] +[\fB\-alias\fR] +[\fB\-serial\fR] +[\fB\-startdate\fR] +[\fB\-enddate\fR] +[\fB\-dates\fR] +[\fB\-subject\fR] +[\fB\-issuer\fR] +[\fB\-nameopt\fR \fIoption\fR] +[\fB\-email\fR] +[\fB\-hash\fR] +[\fB\-subject_hash\fR] +[\fB\-subject_hash_old\fR] +[\fB\-issuer_hash\fR] +[\fB\-issuer_hash_old\fR] +[\fB\-ext\fR \fIextensions\fR] +[\fB\-ocspid\fR] +[\fB\-ocsp_uri\fR] +[\fB\-purpose\fR] +[\fB\-pubkey\fR] +[\fB\-modulus\fR] +[\fB\-checkend\fR \fInum\fR] +[\fB\-checkhost\fR \fIhost\fR] +[\fB\-checkemail\fR \fIhost\fR] +[\fB\-checkip\fR \fIipaddr\fR] +[\fB\-set_serial\fR \fIn\fR] +[\fB\-next_serial\fR] +[\fB\-days\fR \fIarg\fR] +[\fB\-preserve_dates\fR] +[\fB\-subj\fR \fIarg\fR] +[\fB\-force_pubkey\fR \fIfilename\fR] +[\fB\-clrext\fR] +[\fB\-extfile\fR \fIfilename\fR] +[\fB\-extensions\fR \fIsection\fR] +[\fB\-sigopt\fR \fInm\fR:\fIv\fR] +[\fB\-badsig\fR] +[\fB\-\f(BIdigest\fB\fR] +[\fB\-CA\fR \fIfilename\fR|\fIuri\fR] +[\fB\-CAform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR|\fBP12\fR] +[\fB\-CAkey\fR \fIfilename\fR|\fIuri\fR] +[\fB\-CAkeyform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR|\fBP12\fR|\fB\s-1ENGINE\s0\fR] +[\fB\-CAserial\fR \fIfilename\fR] +[\fB\-CAcreateserial\fR] +[\fB\-trustout\fR] +[\fB\-setalias\fR \fIarg\fR] +[\fB\-clrtrust\fR] +[\fB\-addtrust\fR \fIarg\fR] +[\fB\-clrreject\fR] +[\fB\-addreject\fR \fIarg\fR] +[\fB\-rand\fR \fIfiles\fR] +[\fB\-writerand\fR \fIfile\fR] +[\fB\-engine\fR \fIid\fR] +[\fB\-provider\fR \fIname\fR] +[\fB\-provider\-path\fR \fIpath\fR] +[\fB\-propquery\fR \fIpropq\fR] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +This command is a multi-purposes certificate handling command. +It can be used to print certificate information, +convert certificates to various forms, edit certificate trust settings, +generate certificates from scratch or from certificating requests +and then self-signing them or signing them like a \*(L"micro \s-1CA\*(R".\s0 +.PP +Since there are a large number of options they will split up into +various sections. +.SH "OPTIONS" +.IX Header "OPTIONS" +.SS "Input, Output, and General Purpose Options" +.IX Subsection "Input, Output, and General Purpose Options" +.IP "\fB\-help\fR" 4 +.IX Item "-help" +Print out a usage message. +.IP "\fB\-in\fR \fIfilename\fR|\fIuri\fR" 4 +.IX Item "-in filename|uri" +This specifies the input to read a certificate from +or the input file for reading a certificate request if the \fB\-req\fR flag is used. +In both cases this defaults to standard input. +.Sp +This option cannot be combined with the \fB\-new\fR flag. +.IP "\fB\-passin\fR \fIarg\fR" 4 +.IX Item "-passin arg" +The key and certificate file password source. +For more information about the format of \fIarg\fR +see \fBopenssl\-passphrase\-options\fR\|(1). +.IP "\fB\-new\fR" 4 +.IX Item "-new" +Generate a certificate from scratch, not using an input certificate +or certificate request. So the \fB\-in\fR option must not be used in this case. +Instead, the \fB\-subj\fR option needs to be given. +The public key to include can be given with the \fB\-force_pubkey\fR option +and defaults to the key given with the \fB\-key\fR (or \fB\-signkey\fR) option, +which implies self-signature. +.IP "\fB\-x509toreq\fR" 4 +.IX Item "-x509toreq" +Output a PKCS#10 certificate request (rather than a certificate). +The \fB\-key\fR (or \fB\-signkey\fR) option must be used to provide the private key for +self-signing; the corresponding public key is placed in the subjectPKInfo field. +.Sp +X.509 extensions included in a certificate input are not copied by default. +X.509 extensions to be added can be specified using the \fB\-extfile\fR option. +.IP "\fB\-req\fR" 4 +.IX Item "-req" +By default a certificate is expected on input. +With this option a PKCS#10 certificate request is expected instead, +which must be correctly self-signed. +.Sp +X.509 extensions included in the request are not copied by default. +X.509 extensions to be added can be specified using the \fB\-extfile\fR option. +.IP "\fB\-copy_extensions\fR \fIarg\fR" 4 +.IX Item "-copy_extensions arg" +Determines how to handle X.509 extensions +when converting from a certificate to a request using the \fB\-x509toreq\fR option +or converting from a request to a certificate using the \fB\-req\fR option. +If \fIarg\fR is \fBnone\fR or this option is not present then extensions are ignored. +If \fIarg\fR is \fBcopy\fR or \fBcopyall\fR then all extensions are copied, +except that subject identifier and authority key identifier extensions +are not taken over when producing a certificate request. +.Sp +The \fB\-ext\fR option can be used to further restrict which extensions to copy. +.IP "\fB\-inform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR" 4 +.IX Item "-inform DER|PEM" +The input file format; unspecified by default. +See \fBopenssl\-format\-options\fR\|(1) for details. +.IP "\fB\-vfyopt\fR \fInm\fR:\fIv\fR" 4 +.IX Item "-vfyopt nm:v" +Pass options to the signature algorithm during verify operations. +Names and values of these options are algorithm-specific. +.IP "\fB\-key\fR \fIfilename\fR|\fIuri\fR" 4 +.IX Item "-key filename|uri" +This option provides the private key for signing a new certificate or +certificate request. +Unless \fB\-force_pubkey\fR is given, the corresponding public key is placed in +the new certificate or certificate request, resulting in a self-signature. +.Sp +This option cannot be used in conjunction with the \fB\-CA\fR option. +.Sp +It sets the issuer name to the subject name (i.e., makes it self-issued) +and changes the public key to the supplied value (unless overridden +by \fB\-force_pubkey\fR). +Unless the \fB\-preserve_dates\fR option is supplied, +it sets the validity start date to the current time +and the end date to a value determined by the \fB\-days\fR option. +.IP "\fB\-signkey\fR \fIfilename\fR|\fIuri\fR" 4 +.IX Item "-signkey filename|uri" +This option is an alias of \fB\-key\fR. +.IP "\fB\-keyform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR|\fBP12\fR|\fB\s-1ENGINE\s0\fR" 4 +.IX Item "-keyform DER|PEM|P12|ENGINE" +The key input format; unspecified by default. +See \fBopenssl\-format\-options\fR\|(1) for details. +.IP "\fB\-out\fR \fIfilename\fR" 4 +.IX Item "-out filename" +This specifies the output filename to write to or standard output by default. +.IP "\fB\-outform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR" 4 +.IX Item "-outform DER|PEM" +The output format; the default is \fB\s-1PEM\s0\fR. +See \fBopenssl\-format\-options\fR\|(1) for details. +.IP "\fB\-nocert\fR" 4 +.IX Item "-nocert" +Do not output a certificate (except for printing as requested by below options). +.IP "\fB\-noout\fR" 4 +.IX Item "-noout" +This option prevents output except for printing as requested by below options. +.SS "Certificate Printing Options" +.IX Subsection "Certificate Printing Options" +Note: the \fB\-alias\fR and \fB\-purpose\fR options are also printing options +but are described in the \*(L"Trust Settings\*(R" section. +.IP "\fB\-dateopt\fR" 4 +.IX Item "-dateopt" +Specify the date output format. Values are: rfc_822 and iso_8601. +Defaults to rfc_822. +.IP "\fB\-text\fR" 4 +.IX Item "-text" +Prints out the certificate in text form. Full details are printed including the +public key, signature algorithms, issuer and subject names, serial number +any extensions present and any trust settings. +.IP "\fB\-certopt\fR \fIoption\fR" 4 +.IX Item "-certopt option" +Customise the print format used with \fB\-text\fR. The \fIoption\fR argument +can be a single option or multiple options separated by commas. +The \fB\-certopt\fR switch may be also be used more than once to set multiple +options. See the \*(L"Text Printing Flags\*(R" section for more information. +.IP "\fB\-fingerprint\fR" 4 +.IX Item "-fingerprint" +Calculates and prints the digest of the \s-1DER\s0 encoded version of the entire +certificate (see digest options). +This is commonly called a \*(L"fingerprint\*(R". Because of the nature of message +digests, the fingerprint of a certificate is unique to that certificate and +two certificates with the same fingerprint can be considered to be the same. +.IP "\fB\-alias\fR" 4 +.IX Item "-alias" +Prints the certificate \*(L"alias\*(R" (nickname), if any. +.IP "\fB\-serial\fR" 4 +.IX Item "-serial" +Prints the certificate serial number. +.IP "\fB\-startdate\fR" 4 +.IX Item "-startdate" +Prints out the start date of the certificate, that is the notBefore date. +.IP "\fB\-enddate\fR" 4 +.IX Item "-enddate" +Prints out the expiry date of the certificate, that is the notAfter date. +.IP "\fB\-dates\fR" 4 +.IX Item "-dates" +Prints out the start and expiry dates of a certificate. +.IP "\fB\-subject\fR" 4 +.IX Item "-subject" +Prints the subject name. +.IP "\fB\-issuer\fR" 4 +.IX Item "-issuer" +Prints the issuer name. +.IP "\fB\-nameopt\fR \fIoption\fR" 4 +.IX Item "-nameopt option" +This specifies how the subject or issuer names are displayed. +See \fBopenssl\-namedisplay\-options\fR\|(1) for details. +.IP "\fB\-email\fR" 4 +.IX Item "-email" +Prints the email address(es) if any. +.IP "\fB\-hash\fR" 4 +.IX Item "-hash" +Synonym for \*(L"\-subject_hash\*(R" for backward compatibility reasons. +.IP "\fB\-subject_hash\fR" 4 +.IX Item "-subject_hash" +Prints the \*(L"hash\*(R" of the certificate subject name. This is used in OpenSSL to +form an index to allow certificates in a directory to be looked up by subject +name. +.IP "\fB\-subject_hash_old\fR" 4 +.IX Item "-subject_hash_old" +Prints the \*(L"hash\*(R" of the certificate subject name using the older algorithm +as used by OpenSSL before version 1.0.0. +.IP "\fB\-issuer_hash\fR" 4 +.IX Item "-issuer_hash" +Prints the \*(L"hash\*(R" of the certificate issuer name. +.IP "\fB\-issuer_hash_old\fR" 4 +.IX Item "-issuer_hash_old" +Prints the \*(L"hash\*(R" of the certificate issuer name using the older algorithm +as used by OpenSSL before version 1.0.0. +.IP "\fB\-ext\fR \fIextensions\fR" 4 +.IX Item "-ext extensions" +Prints out the certificate extensions in text form. +Can also be used to restrict which extensions to copy. +Extensions are specified +with a comma separated string, e.g., \*(L"subjectAltName,subjectKeyIdentifier\*(R". +See the \fBx509v3_config\fR\|(5) manual page for the extension names. +.IP "\fB\-ocspid\fR" 4 +.IX Item "-ocspid" +Prints the \s-1OCSP\s0 hash values for the subject name and public key. +.IP "\fB\-ocsp_uri\fR" 4 +.IX Item "-ocsp_uri" +Prints the \s-1OCSP\s0 responder address(es) if any. +.IP "\fB\-purpose\fR" 4 +.IX Item "-purpose" +This option performs tests on the certificate extensions and outputs +the results. For a more complete description see +\&\*(L"Certificate Extensions\*(R" in \fBopenssl\-verification\-options\fR\|(1). +.IP "\fB\-pubkey\fR" 4 +.IX Item "-pubkey" +Prints the certificate's SubjectPublicKeyInfo block in \s-1PEM\s0 format. +.IP "\fB\-modulus\fR" 4 +.IX Item "-modulus" +This option prints out the value of the modulus of the public key +contained in the certificate. +.SS "Certificate Checking Options" +.IX Subsection "Certificate Checking Options" +.IP "\fB\-checkend\fR \fIarg\fR" 4 +.IX Item "-checkend arg" +Checks if the certificate expires within the next \fIarg\fR seconds and exits +nonzero if yes it will expire or zero if not. +.IP "\fB\-checkhost\fR \fIhost\fR" 4 +.IX Item "-checkhost host" +Check that the certificate matches the specified host. +.IP "\fB\-checkemail\fR \fIemail\fR" 4 +.IX Item "-checkemail email" +Check that the certificate matches the specified email address. +.IP "\fB\-checkip\fR \fIipaddr\fR" 4 +.IX Item "-checkip ipaddr" +Check that the certificate matches the specified \s-1IP\s0 address. +.SS "Certificate Output Options" +.IX Subsection "Certificate Output Options" +.IP "\fB\-set_serial\fR \fIn\fR" 4 +.IX Item "-set_serial n" +Specifies the serial number to use. +This option can be used with the \fB\-key\fR, \fB\-signkey\fR, or \fB\-CA\fR options. +If used in conjunction with the \fB\-CA\fR option +the serial number file (as specified by the \fB\-CAserial\fR option) is not used. +.Sp +The serial number can be decimal or hex (if preceded by \f(CW\*(C`0x\*(C'\fR). +.IP "\fB\-next_serial\fR" 4 +.IX Item "-next_serial" +Set the serial to be one more than the number in the certificate. +.IP "\fB\-days\fR \fIarg\fR" 4 +.IX Item "-days arg" +Specifies the number of days until a newly generated certificate expires. +The default is 30. +Cannot be used together with the \fB\-preserve_dates\fR option. +.IP "\fB\-preserve_dates\fR" 4 +.IX Item "-preserve_dates" +When signing a certificate, preserve \*(L"notBefore\*(R" and \*(L"notAfter\*(R" dates of any +input certificate instead of adjusting them to current time and duration. +Cannot be used together with the \fB\-days\fR option. +.IP "\fB\-subj\fR \fIarg\fR" 4 +.IX Item "-subj arg" +When a certificate is created set its subject name to the given value. +When the certificate is self-signed the issuer name is set to the same value. +.Sp +The arg must be formatted as \f(CW\*(C`/type0=value0/type1=value1/type2=...\*(C'\fR. +Special characters may be escaped by \f(CW\*(C`\e\*(C'\fR (backslash), whitespace is retained. +Empty values are permitted, but the corresponding type will not be included +in the certificate. +Giving a single \f(CW\*(C`/\*(C'\fR will lead to an empty sequence of RDNs (a NULL-DN). +Multi-valued RDNs can be formed by placing a \f(CW\*(C`+\*(C'\fR character instead of a \f(CW\*(C`/\*(C'\fR +between the AttributeValueAssertions (AVAs) that specify the members of the set. +Example: +.Sp +\&\f(CW\*(C`/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe\*(C'\fR +.Sp +This option can be used in conjunction with the \fB\-force_pubkey\fR option +to create a certificate even without providing an input certificate +or certificate request. +.IP "\fB\-force_pubkey\fR \fIfilename\fR" 4 +.IX Item "-force_pubkey filename" +When a certificate is created set its public key to the key in \fIfilename\fR +instead of the key contained in the input +or given with the \fB\-key\fR (or \fB\-signkey\fR) option. +.Sp +This option is useful for creating self-issued certificates that are not +self-signed, for instance when the key cannot be used for signing, such as \s-1DH.\s0 +It can also be used in conjunction with \fB\-new\fR and \fB\-subj\fR to directly +generate a certificate containing any desired public key. +.IP "\fB\-clrext\fR" 4 +.IX Item "-clrext" +When transforming a certificate to a new certificate +by default all certificate extensions are retained. +.Sp +When transforming a certificate or certificate request, +the \fB\-clrext\fR option prevents taking over any extensions from the source. +In any case, when producing a certificate request, +neither subject identifier nor authority key identifier extensions are included. +.IP "\fB\-extfile\fR \fIfilename\fR" 4 +.IX Item "-extfile filename" +Configuration file containing certificate and request X.509 extensions to add. +.IP "\fB\-extensions\fR \fIsection\fR" 4 +.IX Item "-extensions section" +The section in the extfile to add X.509 extensions from. +If this option is not +specified then the extensions should either be contained in the unnamed +(default) section or the default section should contain a variable called +\&\*(L"extensions\*(R" which contains the section to use. +See the \fBx509v3_config\fR\|(5) manual page for details of the +extension section format. +.IP "\fB\-sigopt\fR \fInm\fR:\fIv\fR" 4 +.IX Item "-sigopt nm:v" +Pass options to the signature algorithm during sign operations. +This option may be given multiple times. +Names and values provided using this option are algorithm-specific. +.IP "\fB\-badsig\fR" 4 +.IX Item "-badsig" +Corrupt the signature before writing it; this can be useful +for testing. +.IP "\fB\-\f(BIdigest\fB\fR" 4 +.IX Item "-digest" +The digest to use. +This affects any signing or printing option that uses a message +digest, such as the \fB\-fingerprint\fR, \fB\-key\fR, and \fB\-CA\fR options. +Any digest supported by the \fBopenssl\-dgst\fR\|(1) command can be used. +If not specified then \s-1SHA1\s0 is used with \fB\-fingerprint\fR or +the default digest for the signing algorithm is used, typically \s-1SHA256.\s0 +.SS "Micro-CA Options" +.IX Subsection "Micro-CA Options" +.IP "\fB\-CA\fR \fIfilename\fR|\fIuri\fR" 4 +.IX Item "-CA filename|uri" +Specifies the \*(L"\s-1CA\*(R"\s0 certificate to be used for signing. +When present, this behaves like a \*(L"micro \s-1CA\*(R"\s0 as follows: +The subject name of the \*(L"\s-1CA\*(R"\s0 certificate is placed as issuer name in the new +certificate, which is then signed using the \*(L"\s-1CA\*(R"\s0 key given as detailed below. +.Sp +This option cannot be used in conjunction with \fB\-key\fR (or \fB\-signkey\fR). +This option is normally combined with the \fB\-req\fR option referencing a \s-1CSR.\s0 +Without the \fB\-req\fR option the input must be an existing certificate +unless the \fB\-new\fR option is given, which generates a certificate from scratch. +.IP "\fB\-CAform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR|\fBP12\fR," 4 +.IX Item "-CAform DER|PEM|P12," +The format for the \s-1CA\s0 certificate; unspecified by default. +See \fBopenssl\-format\-options\fR\|(1) for details. +.IP "\fB\-CAkey\fR \fIfilename\fR|\fIuri\fR" 4 +.IX Item "-CAkey filename|uri" +Sets the \s-1CA\s0 private key to sign a certificate with. +The private key must match the public key of the certificate given with \fB\-CA\fR. +If this option is not provided then the key must be present in the \fB\-CA\fR input. +.IP "\fB\-CAkeyform\fR \fB\s-1DER\s0\fR|\fB\s-1PEM\s0\fR|\fBP12\fR|\fB\s-1ENGINE\s0\fR" 4 +.IX Item "-CAkeyform DER|PEM|P12|ENGINE" +The format for the \s-1CA\s0 key; unspecified by default. +See \fBopenssl\-format\-options\fR\|(1) for details. +.IP "\fB\-CAserial\fR \fIfilename\fR" 4 +.IX Item "-CAserial filename" +Sets the \s-1CA\s0 serial number file to use. +.Sp +When creating a certificate with this option and with the \fB\-CA\fR option, +the certificate serial number is stored in the given file. +This file consists of one line containing +an even number of hex digits with the serial number used last time. +After reading this number, it is incremented and used, and the file is updated. +.Sp +The default filename consists of the \s-1CA\s0 certificate file base name with +\&\fI.srl\fR appended. For example if the \s-1CA\s0 certificate file is called +\&\fImycacert.pem\fR it expects to find a serial number file called +\&\fImycacert.srl\fR. +.Sp +If the \fB\-CA\fR option is specified and neither <\-CAserial> or <\-CAcreateserial> +is given and the default serial number file does not exist, +a random number is generated; this is the recommended practice. +.IP "\fB\-CAcreateserial\fR" 4 +.IX Item "-CAcreateserial" +With this option and the \fB\-CA\fR option +the \s-1CA\s0 serial number file is created if it does not exist. +A random number is generated, used for the certificate, +and saved into the serial number file determined as described above. +.SS "Trust Settings" +.IX Subsection "Trust Settings" +A \fBtrusted certificate\fR is an ordinary certificate which has several +additional pieces of information attached to it such as the permitted +and prohibited uses of the certificate and possibly an \*(L"alias\*(R" (nickname). +.PP +Normally when a certificate is being verified at least one certificate +must be \*(L"trusted\*(R". By default a trusted certificate must be stored +locally and must be a root \s-1CA:\s0 any certificate chain ending in this \s-1CA\s0 +is then usable for any purpose. +.PP +Trust settings currently are only used with a root \s-1CA.\s0 +They allow a finer control over the purposes the root \s-1CA\s0 can be used for. +For example, a \s-1CA\s0 may be trusted for \s-1SSL\s0 client but not \s-1SSL\s0 server use. +.PP +See \fBopenssl\-verification\-options\fR\|(1) for more information +on the meaning of trust settings. +.PP +Future versions of OpenSSL will recognize trust settings on any +certificate: not just root CAs. +.IP "\fB\-trustout\fR" 4 +.IX Item "-trustout" +Mark any certificate \s-1PEM\s0 output as <trusted> certificate rather than ordinary. +An ordinary or trusted certificate can be input but by default an ordinary +certificate is output and any trust settings are discarded. +With the \fB\-trustout\fR option a trusted certificate is output. A trusted +certificate is automatically output if any trust settings are modified. +.IP "\fB\-setalias\fR \fIarg\fR" 4 +.IX Item "-setalias arg" +Sets the \*(L"alias\*(R" of the certificate. This will allow the certificate +to be referred to using a nickname for example \*(L"Steve's Certificate\*(R". +.IP "\fB\-clrtrust\fR" 4 +.IX Item "-clrtrust" +Clears all the permitted or trusted uses of the certificate. +.IP "\fB\-addtrust\fR \fIarg\fR" 4 +.IX Item "-addtrust arg" +Adds a trusted certificate use. +Any object name can be used here but currently only \fBclientAuth\fR, +\&\fBserverAuth\fR, \fBemailProtection\fR, and \fBanyExtendedKeyUsage\fR are defined. +As of OpenSSL 1.1.0, the last of these blocks all purposes when rejected or +enables all purposes when trusted. +Other OpenSSL applications may define additional uses. +.IP "\fB\-clrreject\fR" 4 +.IX Item "-clrreject" +Clears all the prohibited or rejected uses of the certificate. +.IP "\fB\-addreject\fR \fIarg\fR" 4 +.IX Item "-addreject arg" +Adds a prohibited trust anchor purpose. +It accepts the same values as the \fB\-addtrust\fR option. +.SS "Generic options" +.IX Subsection "Generic options" +.IP "\fB\-rand\fR \fIfiles\fR, \fB\-writerand\fR \fIfile\fR" 4 +.IX Item "-rand files, -writerand file" +See \*(L"Random State Options\*(R" in \fBopenssl\fR\|(1) for details. +.IP "\fB\-engine\fR \fIid\fR" 4 +.IX Item "-engine id" +See \*(L"Engine Options\*(R" in \fBopenssl\fR\|(1). +This option is deprecated. +.IP "\fB\-provider\fR \fIname\fR" 4 +.IX Item "-provider name" +.PD 0 +.IP "\fB\-provider\-path\fR \fIpath\fR" 4 +.IX Item "-provider-path path" +.IP "\fB\-propquery\fR \fIpropq\fR" 4 +.IX Item "-propquery propq" +.PD +See \*(L"Provider Options\*(R" in \fBopenssl\fR\|(1), \fBprovider\fR\|(7), and \fBproperty\fR\|(7). +.SS "Text Printing Flags" +.IX Subsection "Text Printing Flags" +As well as customising the name printing format, it is also possible to +customise the actual fields printed using the \fBcertopt\fR option when +the \fBtext\fR option is present. The default behaviour is to print all fields. +.IP "\fBcompatible\fR" 4 +.IX Item "compatible" +Use the old format. This is equivalent to specifying no printing options at all. +.IP "\fBno_header\fR" 4 +.IX Item "no_header" +Don't print header information: that is the lines saying \*(L"Certificate\*(R" +and \*(L"Data\*(R". +.IP "\fBno_version\fR" 4 +.IX Item "no_version" +Don't print out the version number. +.IP "\fBno_serial\fR" 4 +.IX Item "no_serial" +Don't print out the serial number. +.IP "\fBno_signame\fR" 4 +.IX Item "no_signame" +Don't print out the signature algorithm used. +.IP "\fBno_validity\fR" 4 +.IX Item "no_validity" +Don't print the validity, that is the \fBnotBefore\fR and \fBnotAfter\fR fields. +.IP "\fBno_subject\fR" 4 +.IX Item "no_subject" +Don't print out the subject name. +.IP "\fBno_issuer\fR" 4 +.IX Item "no_issuer" +Don't print out the issuer name. +.IP "\fBno_pubkey\fR" 4 +.IX Item "no_pubkey" +Don't print out the public key. +.IP "\fBno_sigdump\fR" 4 +.IX Item "no_sigdump" +Don't give a hexadecimal dump of the certificate signature. +.IP "\fBno_aux\fR" 4 +.IX Item "no_aux" +Don't print out certificate trust information. +.IP "\fBno_extensions\fR" 4 +.IX Item "no_extensions" +Don't print out any X509V3 extensions. +.IP "\fBext_default\fR" 4 +.IX Item "ext_default" +Retain default extension behaviour: attempt to print out unsupported +certificate extensions. +.IP "\fBext_error\fR" 4 +.IX Item "ext_error" +Print an error message for unsupported certificate extensions. +.IP "\fBext_parse\fR" 4 +.IX Item "ext_parse" +\&\s-1ASN1\s0 parse unsupported extensions. +.IP "\fBext_dump\fR" 4 +.IX Item "ext_dump" +Hex dump unsupported extensions. +.IP "\fBca_default\fR" 4 +.IX Item "ca_default" +The value used by \fBopenssl\-ca\fR\|(1), equivalent to \fBno_issuer\fR, \fBno_pubkey\fR, +\&\fBno_header\fR, and \fBno_version\fR. +.SH "EXAMPLES" +.IX Header "EXAMPLES" +Note: in these examples the '\e' means the example should be all on one +line. +.PP +Print the contents of a certificate: +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-noout \-text +.Ve +.PP +Print the \*(L"Subject Alternative Name\*(R" extension of a certificate: +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-noout \-ext subjectAltName +.Ve +.PP +Print more extensions of a certificate: +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-noout \-ext subjectAltName,nsCertType +.Ve +.PP +Print the certificate serial number: +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-noout \-serial +.Ve +.PP +Print the certificate subject name: +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-noout \-subject +.Ve +.PP +Print the certificate subject name in \s-1RFC2253\s0 form: +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-noout \-subject \-nameopt RFC2253 +.Ve +.PP +Print the certificate subject name in oneline form on a terminal +supporting \s-1UTF8:\s0 +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-noout \-subject \-nameopt oneline,\-esc_msb +.Ve +.PP +Print the certificate \s-1SHA1\s0 fingerprint: +.PP +.Vb 1 +\& openssl x509 \-sha1 \-in cert.pem \-noout \-fingerprint +.Ve +.PP +Convert a certificate from \s-1PEM\s0 to \s-1DER\s0 format: +.PP +.Vb 1 +\& openssl x509 \-in cert.pem \-inform PEM \-out cert.der \-outform DER +.Ve +.PP +Convert a certificate to a certificate request: +.PP +.Vb 1 +\& openssl x509 \-x509toreq \-in cert.pem \-out req.pem \-key key.pem +.Ve +.PP +Convert a certificate request into a self-signed certificate using +extensions for a \s-1CA:\s0 +.PP +.Vb 2 +\& openssl x509 \-req \-in careq.pem \-extfile openssl.cnf \-extensions v3_ca \e +\& \-key key.pem \-out cacert.pem +.Ve +.PP +Sign a certificate request using the \s-1CA\s0 certificate above and add user +certificate extensions: +.PP +.Vb 2 +\& openssl x509 \-req \-in req.pem \-extfile openssl.cnf \-extensions v3_usr \e +\& \-CA cacert.pem \-CAkey key.pem \-CAcreateserial +.Ve +.PP +Set a certificate to be trusted for \s-1SSL\s0 client use and change set its alias to +\&\*(L"Steve's Class 1 \s-1CA\*(R"\s0 +.PP +.Vb 2 +\& openssl x509 \-in cert.pem \-addtrust clientAuth \e +\& \-setalias "Steve\*(Aqs Class 1 CA" \-out trust.pem +.Ve +.SH "NOTES" +.IX Header "NOTES" +The conversion to \s-1UTF8\s0 format used with the name options assumes that +T61Strings use the \s-1ISO8859\-1\s0 character set. This is wrong but Netscape +and \s-1MSIE\s0 do this as do many certificates. So although this is incorrect +it is more likely to print the majority of certificates correctly. +.PP +The \fB\-email\fR option searches the subject name and the subject alternative +name extension. Only unique email addresses will be printed out: it will +not print the same address more than once. +.SH "BUGS" +.IX Header "BUGS" +It is possible to produce invalid certificates or requests by specifying the +wrong private key, using unsuitable X.509 extensions, +or using inconsistent options in some cases: these should be checked. +.PP +There should be options to explicitly set such things as start and end +dates rather than an offset from the current time. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fBopenssl\fR\|(1), +\&\fBopenssl\-req\fR\|(1), +\&\fBopenssl\-ca\fR\|(1), +\&\fBopenssl\-genrsa\fR\|(1), +\&\fBopenssl\-gendsa\fR\|(1), +\&\fBopenssl\-verify\fR\|(1), +\&\fBx509v3_config\fR\|(5) +.SH "HISTORY" +.IX Header "HISTORY" +The hash algorithm used in the \fB\-subject_hash\fR and \fB\-issuer_hash\fR options +before OpenSSL 1.0.0 was based on the deprecated \s-1MD5\s0 algorithm and the encoding +of the distinguished name. In OpenSSL 1.0.0 and later it is based on a canonical +version of the \s-1DN\s0 using \s-1SHA1.\s0 This means that any directories using the old +form must have their links rebuilt using \fBopenssl\-rehash\fR\|(1) or similar. +.PP +The \fB\-signkey\fR option has been renamed to \fB\-key\fR in OpenSSL 3.0, +keeping the old name as an alias. +.PP +The \fB\-engine\fR option was deprecated in OpenSSL 3.0. +.PP +The \fB\-C\fR option was removed in OpenSSL 3.0. +.SH "COPYRIGHT" +.IX Header "COPYRIGHT" +Copyright 2000\-2023 The OpenSSL Project Authors. All Rights Reserved. +.PP +Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file \s-1LICENSE\s0 in the source distribution or at +<https://www.openssl.org/source/license.html>. |