Reference

pki---req(1)

Create a PKCS#10 certificate request

NAME

pki --req - Create a PKCS#10 certificate request

SYNOPSIS

pki --req [--in file|--keyid hex] [--type type] --dn distinguished-name [--san subjectAltName] [--profile profile] [--flag flag] [--password password] [--digest digest] [--rsa-padding padding] [--outform encoding] [--debug level]

pki --req [--in file|--keyid hex] [--type type] --oldreq file [--password password] [--digest digest] [--rsa-padding padding] [--outform encoding] [--debug level]

pki --req --options file

pki --req -h | --help

DESCRIPTION

This sub-command of pki(1) is used to create a PKCS#10 certificate request.

OPTIONS

-h, --help

Print usage information with a summary of the available options.

-v, --debug level

Set debug level, default: 1.

-+, --options file

Read command line options from file.

-i, --in file

Private key input file. If not given the key is read from STDIN.

-x, --keyid hex

Smartcard or TPM private key object handle in hex format with an optional 0x prefix.

-t, --type type

Type of the input key. Either priv, rsa or ecdsa, defaults to priv.

-d, --dn distinguished-name

Subject distinguished name (DN). Required if the --dn option is not set.

-a, --san subjectAltName

subjectAltName extension to include in request. Can be used multiple times.

-P, --profile profile

Certificate profile name to be included in the certificate request. Can be any UTF8 string. Supported e.g. by openxpki (with profiles pc-client, tls-server, etc.) or pki --issue (with profiles server, client, dual, or ocsp) that are translated into corresponding Extended Key Usage (EKU) flags in the generated X.509 certificate.

-e, --flag flag

Add extendedKeyUsage flag. One of serverAuth, clientAuth, ocspSigning or msSmartcardLogon. Can be used multiple times. Adds an X.509v3 EKU extension containing these flags to the certificate request.

-p, --password password

The challengePassword to include in the certificate request.

-o, --oldreq file

Old certificate request to be used as a template. Required if the --dn option is not set. The public key in the old certificate request is replaced and a fresh signature is generated using the new private key. Optionally a new challengePassword may be set using the --password option.

-g, --digest digest

Digest to use for signature creation. One of sha1, sha224, sha256, sha384, sha512, sha3_224, sha3_256, sha3_384, or sha3_512. The default is determined based on the type and size of the signature key.

-R, --rsa-padding padding

Padding to use for RSA signatures. Either pkcs1 or pss, defaults to pkcs1.

-f, --outform encoding

Encoding of the created certificate file. Either der (ASN.1 DER) or pem (Base64 PEM), defaults to der.

EXAMPLES

Generate a certificate request for an RSA key, with a subjectAltName extension and a TLS-server profile:

  pki --req --in key.der --dn "C=CH, O=strongSwan, CN=moon" \
      --san [email protected] --profile server > req.der

Generate a certificate request for a renewed key based on an existing template

  pki --req --in myNewKey.der --oldreq myReq.der > myNewReq.der

Generate a certificate request for an ECDSA key and a different digest:

  pki --req --in key.der --type ecdsa --digest sha256 \
      --dn "C=CH, O=strongSwan, CN=carol"  > req.der

SEE ALSO

pki(1)

History

--flag since Debian 13 (Trixie); --keyid since Debian 10 (Buster); --oldreq since Debian 12 (Bookworm); --profile since Debian 12 (Bookworm); --rsa-padding since Debian 10 (Buster); -P since Debian 12 (Bookworm); -R since Debian 10 (Buster); -e since Debian 13 (Trixie); -o since Debian 12 (Bookworm); -x since Debian 10 (Buster).