DigiCert ONE / CertCentral

Reads certificate orders from CertCentral and private CA certificates from DigiCert ONE using separate credentials

How It Works

The DigiCert connector reads certificate orders from CertCentral and private CA certificates from DigiCert ONE. CertCentral orders and DigiCert ONE CAs use separate API hosts and credentials. Flat NDJSON uses the shared PKI events pki_issued_cert_discovered, pki_ca_discovered, and pki_scan_completed.

๐Ÿ”‘

Authenticate

CertCentral orders use X-DC-DEVKEY; the scanner checks GET /user/me first. DigiCert ONE Private CAs use a separate service-user token in the x-api-key header.

๐Ÿ“‹

Paginate

GET /order/certificate?limit=1000&offset=N with 429 rate-limit backoff (up to 60 s). Per-order detail call enriches key size and curve.

๐Ÿ›ก๏ธ

Assess

When available, CertCentral leaf certificates are downloaded over verified HTTPS and checked against the order's serial and existing fingerprints before parsing. Parsed certificates supply SHA-1 and SHA-256 fingerprints, key and signature algorithms, and certificate assessments. Source-provided order serials, common names, and validity dates are preserved. Certificates with a recognized key algorithm and size are assessed against OMB M-23-02 and CNSA 2.0. Ed25519 and Ed448 are classical, quantum-vulnerable signing algorithms. Unavailable downloads retain order metadata. An order lacking usable key fields remains in inventory, marks the scan partial, and reports its security ratings as unknown. Without a parsed leaf certificate, self-signed status, CA status, certificate validity, and certificate grade remain unknown. A signature hash alone does not establish the full certificate signature algorithm.

Two Required Inventories

A CertCentral key alone cannot read DigiCert ONE Private CAs. If either inventory is not configured or cannot be read, the scanner keeps results from the other service but reports the combined DigiCert scan as partial or failed. A valid empty CA list is a successful empty inventory; HTTP 404 is a request failure.

Prerequisites

Access both accounts

Use your CertCentral account for certificate orders and the appropriate regional DigiCert ONE account for Private CAs.

Prepare separate credentials

In CertCentral: Account โ†’ Account Access โ†’ API Keys โ†’ Add API key.

  • Name it something like TYCHON PQC Scanner
  • Assign to an account with at least View Orders permission
  • Copy the CertCentral key immediately โ€” it is shown once
  • Provision a DigiCert ONE service user with permission to list Private CAs and download their certificates; obtain its API token and regional HTTPS host

Treat both credentials as secrets. Supply them through the process environment and use -config to save them in encrypted configuration; do not put tokens in command arguments.

Verify network access

Allow outbound HTTPS to www.digicert.com for orders and to your DigiCert ONE regional host for Private CAs (default one.digicert.com).

Configuration

Set TYCHON_DIGICERT_API_KEY for CertCentral orders and TYCHON_DIGICERT_ONE_API_KEY for DigiCert ONE Private CAs in the scanner process environment. Set TYCHON_DIGICERT_ONE_URL if your ONE account uses a regional or private-cloud host other than the default. Run -config to save these values in encrypted config.enc; ONE environment values can also override stored values for a scan. Use -digicert-url to override the DigiCert ONE URL for one scan; it takes precedence over the environment and stored URL and does not change the CertCentral URL.

Setting Stored Description
-config-digicert-apikey โœ“ config.enc Legacy command-line way to store the CertCentral order key (X-DC-DEVKEY). Use TYCHON_DIGICERT_API_KEY to keep the key out of command arguments.
TYCHON_DIGICERT_API_KEY โœ“ config.enc when -config runs CertCentral order key (X-DC-DEVKEY), supplied without a secret-bearing command argument.
TYCHON_DIGICERT_ONE_API_KEY โœ“ config.enc when -config runs DigiCert ONE service-user token (x-api-key) for Private CA listing and certificate downloads. Separate from the CertCentral key.
TYCHON_DIGICERT_ONE_URL โœ“ config.enc when -config runs DigiCert ONE HTTPS origin for your region or private cloud; defaults to https://one.digicert.com.
-digicert-url runtime only DigiCert ONE HTTPS origin for this scan; overrides the environment and stored URL. All URL sources accept private-cloud hosts with valid TLS certificates.
-insecure runtime only Legacy CertCentral TLS override. DigiCert ONE requests continue to verify TLS certificates.

Credential Security

Credentials saved with -config are encrypted at rest in config.enc. The scanner sends each credential only to its own service in an authentication header and omits credentials from scan output and errors.

Quick Start Examples

Store both credentials and run first scan

# Have your secret manager provide TYCHON_DIGICERT_API_KEY and
# TYCHON_DIGICERT_ONE_API_KEY to this process. Set TYCHON_DIGICERT_ONE_URL
# for a non-default DigiCert ONE regional or private-cloud host.
./build/certscanner -config

# Read CertCentral orders and DigiCert ONE Private CAs
./build/certscanner -scan-pki -outputformat flatndjson \
  -output digicert_certs.ndjson

# Verify CA and scan-health events in the NDJSON output
grep '"event.action":"pki_ca_discovered"' digicert_certs.ndjson
grep '"event.action":"pki_scan_completed"' digicert_certs.ndjson

Send to Elasticsearch

# Configure both PKI and Elasticsearch credentials together in encrypted config.
./build/certscanner -scan-pki -posttoelastic

PKI scan with multiple connectors

# All configured connectors run together under -scan-pki
# (DigiCert + ADCS + Vault + Venafi โ€” whichever have credentials in config.enc)
./build/certscanner -scan-pki -outputformat flatndjson -output all_pki.ndjson

API Endpoints Used

Endpoint Method Purpose Notes
CertCentral /services/v2/user/me GET Credential verification Called before CertCentral order enumeration; an auth failure marks the combined scan incomplete
DigiCert ONE /certificate-authority/api/v1/ca GET Private CA enumeration x-api-key service-user token; 404 makes the combined scan partial or failed
CertCentral /services/v2/order/certificate GET Certificate order list (paginated) limit=1000 per page; 429 backoff up to 60 s
CertCentral /services/v2/order/certificate/{id} GET Per-order detail (key size, curve) Called per order; resolves key_size and elliptic_curve missing from list response
CertCentral /services/v2/certificate/{id}/download/format/pem_nointermediate GET Verified leaf certificate enrichment Certificate ID from order metadata; redirects rejected, one MiB response limit, bounded timeout and retries. Unavailable leaves retain metadata; invalid or mismatched responses mark the scan partial.
DigiCert ONE /certificate-authority/api/v1/ca/{id}/download?format=pem GET Private CA certificate download Validated CA certificates become pki_ca_discovered events

Rate Limiting

CertCentral order requests use the existing X-RateLimit-Reset handling. DigiCert ONE requests retry HTTP 429 at most twice with short backoff; its CA inventory has a two-minute deadline. If the ONE list is incomplete or the deadline expires, retrieved CA certificates are retained and scan health reports partial or failed status according to the combined result.

Output Fields

DigiCert certificate records are included in the JSON scan report. Flat NDJSON emits pki_issued_cert_discovered for CertCentral orders, pki_ca_discovered for DigiCert ONE CAs, and one pki_scan_completed health event for the combined scan. Health status is success, partial, or failed.

Field Value / Format
file.pathdigicert://www.digicert.com/order/{order_id} or digicert://{one_host}/ca/{ca_id}
hash.sha256_certificateSHA-256 certificate fingerprint when available
certificate.subject_common_nameCertificate common name
crypto.signature_algorithmSignature algorithm when available
x509.public_key_algorithmPublic key algorithm when supplied for an order or parsed from a CA certificate
x509.public_key_sizePublic key size when available from CertCentral order detail or a DigiCert ONE CA certificate
x509.not_before / not_afterCertificate validity period (RFC 3339)
pqc.vulnerableCertificate PQC vulnerability assessment when key metadata is complete; omitted when unknown
pqc.quantum_riskQuantum risk when assessed
pqc.migration_priorityMigration priority when assessed

Example: CertCentral Order Event (Selected Fields)

{
  "event.action": "pki_issued_cert_discovered",
  "event.dataset": "pki_certificate",
  "tychon.pki.platform.type": "digicert",
  "tychon.pki.platform.product": "CertCentral",
  "file.path": "digicert://www.digicert.com/order/123456789",
  "certificate.subject_common_name": "tychon@tychon.io",
  "x509.serial_number": "0A1B2C3D4E5F...",
  "crypto.key_algorithm": "RSA",
  "x509.public_key_size": 4096
}

PQC Assessment Logic

Every certificate from DigiCert is assessed against OMB M-23-02 and CNSA 2.0 thresholds immediately after enumeration:

Algorithm Key Size / Variant pqc_vulnerable quantum_risk
RSA< 2048 bitstruecritical
RSA2048 bitstruehigh
RSA3072โ€“4095 bitstruemedium
RSAโ‰ฅ 4096 bitsfalsemedium
ECDSAP-256 (256 bits)truehigh
ECDSAP-384 (384 bits)truemedium
ECDSAP-521 (521 bits)falselow
ML-DSA / SLH-DSA / FALCONAny NIST PQC variantfalselow

CNSA 2.0 Compliance

CNSA 2.0 requires RSA-4096 minimum and recommends migration to ML-DSA (Kyber/Dilithium) for all new certificates. RSA-4096 with SHA-256 yields pqc_vulnerable: false but quantum_risk: medium โ€” it meets the current floor but is not quantum-safe against a future cryptographically-relevant quantum computer.

PQC Algorithm Handling

The CertCentral order API returns a key_algorithm field and a separate signature_hash field. Classical algorithms (RSA, ECDSA) combine these into a canonical signature algorithm string. Post-quantum algorithms are returned verbatim โ€” they have no separate hash component.

CertCentral key_algorithm signature_hash crypto.signature_algorithm output
RSAsha256SHA256-RSA
RSAsha384SHA384-RSA
ECDSAsha256ECDSA-SHA256
ECDSAsha384ECDSA-SHA384
ML-DSA / ML-DSA-65(ignored)ML-DSA-65
SLH-DSA / SPHINCS+(ignored)SLH-DSA
FALCON / FALCON-512(ignored)FALCON-512
ED25519 / ED448(ignored)ED25519
any unknown valueanypassed through verbatim

Future PQC Algorithms

Unrecognized CertCentral key algorithms are passed through verbatim to crypto.signature_algorithm so they can be investigated. The scanner marks recognized post-quantum algorithms as pqc.vulnerable: false; it does not assume an unknown algorithm is quantum safe.

Troubleshooting

Auth check returned HTTP 401

The API key was rejected. Common causes:

  • CertCentral key was copied incorrectly โ€” update TYCHON_DIGICERT_API_KEY in your secret manager and save the encrypted configuration again
  • The API key was deactivated or deleted โ€” generate a new one in CertCentral โ†’ Account โ†’ Account Access โ†’ API Keys
  • The key is for a different CertCentral account or sub-account

Auth check returned HTTP 403

The API key is valid but lacks permission to view orders. The associated account must have at least View Orders permission in CertCentral role settings.

DigiCert ONE CA request returns HTTP 404

Verify the configured DigiCert ONE regional host and access to /certificate-authority/api/v1/ca. The scanner keeps any CertCentral order results but reports the DigiCert scan as partial or failed; HTTP 404 is not a successful empty CA inventory.

DigiCert ONE CA request returns HTTP 401 or 403

Check that TYCHON_DIGICERT_ONE_API_KEY is a current DigiCert ONE service-user token with permission to list Private CAs and download their certificates. The scanner reports authentication or permission failure in scan health; CertCentral orders remain available if that inventory succeeds.

Some certificates show key_size = 0 or quantum_risk = high (unknown key)

Older expired or revoked orders may no longer have certificate metadata attached in the DigiCert API. The per-order detail call returns no certificate object for these records. The connector defaults to a conservative risk = high assessment when key size is unknown. Active certificates always have full metadata.

Scan is slow / backing off on 429

CertCentral order requests use X-RateLimit-Reset handling. DigiCert ONE CA requests retry HTTP 429 at most twice. The ONE CA scan stops after two minutes and reports partial or failed health if the inventory remains incomplete.

CA inventory not configured

A CertCentral key does not authenticate to DigiCert ONE. Provide TYCHON_DIGICERT_ONE_API_KEY through the process environment or save it in config.enc. A CertCentral-only scan can still return orders, but its combined health status is partial when orders succeed.

Zero certificates returned

A scan is complete with zero certificates only when both configured inventories return successfully with no certificate records. Missing credentials, permission errors, request failures, or incomplete CA pages produce partial or failed health instead.