Skip to content

Certificates

This guide covers certificate operations: issuance, listing, inspection, and verification.

A certificate is a digitally signed document that binds a public key to an identity. X.509 certificates contain:

  • Subject: The entity the certificate identifies
  • Issuer: The CA that signed the certificate
  • Validity: Not Before / Not After dates
  • Public Key: The subject’s public key
  • Extensions: Key usage, SANs, constraints
  • Signature: CA’s digital signature

Issue a certificate from a Certificate Signing Request (CSR).

Terminal window
qpki cert issue [flags]

Note: This command requires a CSR file (--csr). For direct issuance with automatic key generation, use qpki credential enroll instead. See Credentials.

Flags:

FlagShortDefaultDescription
--ca-dir-d./caCA directory
--profile-PrequiredCertificate profile (e.g., ec/tls-server)
--csrrequiredCSR file
--cn""Override common name from CSR
--dns""DNS SANs (comma-separated)
--ip""IP SANs (comma-separated)
--out-o""Output certificate file
--days0Validity period (overrides profile default)
--hybrid""PQC algorithm for hybrid extension
--attest-cert""Attestation cert for ML-KEM CSR (RFC 9883)
--ca-passphrase""CA key passphrase

Examples:

Terminal window
# From classical CSR (ECDSA, RSA)
qpki cert issue --ca-dir ./myca --profile ec/tls-server \
--csr server.csr --out server.crt
qpki cert issue --ca-dir ./myca --profile ml/tls-server-sign \
--csr mldsa.csr --out server.crt
qpki cert issue --ca-dir ./myca --profile ml-kem/client \
--csr kem.csr --attest-cert sign.crt --out kem.crt
qpki cert issue --ca-dir ./myca --profile hybrid/catalyst/tls-server \
--csr hybrid.csr --out server.crt

List certificates in a CA.

Terminal window
qpki cert list [flags]

Flags:

FlagShortDefaultDescription
--ca-dir-d./caCA directory
--statusallFilter by status (valid, revoked, expired, all)

Examples:

Terminal window
# List all certificates
qpki cert list --ca-dir ./myca
qpki cert list --ca-dir ./myca --status valid
qpki cert list --ca-dir ./myca --status revoked

Display information about a certificate.

Terminal window
qpki cert info <serial> [flags]

Flags:

FlagShortDefaultDescription
--ca-dir-d./caCA directory

Example:

Terminal window
qpki cert info 0x03 --ca-dir ./myca

Display information about certificates or keys.

Terminal window
qpki inspect <file> [flags]

Examples:

Terminal window
# Show certificate details
qpki inspect certificate.crt
qpki inspect private.key
qpki inspect ./myca/ca.crt

Verify a certificate’s validity and revocation status.

Terminal window
qpki cert verify <certificate> [flags]

Flags:

FlagShortDefaultDescription
--carequiredCA certificate (PEM)
--crlCRL file for revocation check (PEM/DER)
--ocspOCSP responder URL

Checks performed:

  • Certificate signature (signed by CA)
  • Validity period (not before / not after)
  • Critical extensions
  • Revocation status (if —crl or —ocsp provided)

Examples:

Terminal window
# Basic validation
qpki cert verify server.crt --ca ca.crt
qpki cert verify server.crt --ca ca.crt --crl ca/crl/ca.crl
qpki cert verify server.crt --ca ca.crt --ocsp http://localhost:8080

Exit codes:

  • 0: Certificate is valid
  • 1: Certificate is invalid, expired, or revoked

See Profiles for the complete list of certificate profiles. Common end-entity profiles:

ProfileAlgorithmValidityDescription
ec/tls-serverEC P-2561 yearTLS server certificate
ec/tls-clientEC P-2561 yearTLS client certificate
ml/tls-server-signML-DSA-651 yearPQC TLS server (signing)
hybrid/catalyst/tls-serverEC + ML-DSA1 yearHybrid TLS server

  • CA - Certificate Authority management
  • CRL - Certificate revocation and CRL management
  • Credentials - Credential lifecycle
  • Keys & CSR - Key generation and CSR operations
  • Profiles - Certificate profile templates