Certificates
Overview
Certificate operations (CertOps) tracks public certificates, deployment history, and renewal status alongside your certificate assets. Private keys stay on your hosts or in the system that manages them.
Start with the task you need:
- Track expiry: monitor an HTTPS endpoint or import a public certificate.
- Request a new certificate: follow First-time issuance, including challenge selection and agent policy.
- Use your own CSR with an external CA: follow Public CSR workflows, available from Core 0.17.0.
- Automate an existing certificate: follow Renew certificates automatically. Inventory alone does not configure renewal.
Use the reference below for lifecycle states, custody, history, and retirement.
An executor is any process on your side (a CI job, a cert-manager hook, or a renewal script) that does certificate work and reports it to TokenTimer. The k8s controller observes cert-manager resources and reports public certificate data to inventory. In opt-in provision mode, it also polls for authorized provisioning commands and asks cert-manager to reconcile certificates; these commands use a separate transport from signed agent jobs. See Certificate automation.
Zero private-key custody
TokenTimer control plane does not store or generate certificate private keys; customer-side agents may generate them locally. The platform stores only public certificate material (fingerprints, serial numbers, issuers, subjects, SANs, validity dates, chains) and external key references. Uploads or API payloads that contain private key material are rejected with HTTP 422 (PRIVATE_KEY_MATERIAL_REJECTED).
- Public material: PEM certificates, subject, issuer, serial, fingerprint, and expiry metadata.
- Key references: which host or cluster holds a key, not the key itself and not a path you can open to read it. For agent-managed certificates this is recorded as the certificate's own path on the agent host, because that is the only coordinate the control plane can verify; TokenTimer never sees the key file.
- Observations: what the worker saw served at a monitored HTTPS endpoint.
For deployment defaults and the CertOps switch, see Configuration.
Managed certificate inventory
Each certificate identity is one exact certificate, keyed by its normalized SHA-256 fingerprint in a workspace. All endpoints, agents and imports observing it share one inventory entry. Details combine linked token fields and retained Notes with separate Observed locations and Management sources tables. A source keeps its own management history and renewal configuration; lifecycle belongs to the fingerprint.
Lifecycle and status badges
Lifecycle is active, revoked or decommissioned for the exact fingerprint. Provisioning, expiry and renewal badges describe its current operational state separately.
- discovered: first seen through observation or import, not yet confirmed active in inventory.
- provisioning: created by an
issuejob and awaiting its first certificate. It flips to active when the job succeeds, and stays at provisioning if the job fails. - active: tracked without a revoked or decommissioned lifecycle; expiry is shown separately.
- renewing: a newer instance was observed while the prior one is still valid.
- expiring: within the configured expiry threshold.
- expired: past its expiry (
notAfter) date. - revoked: retired because the certificate was revoked or must no longer be trusted.
- decommissioned: retired because the certificate was intentionally taken out of service.
You see managed certificate data on enriched cert rows in the Tokens list and on the CertOps panel in token detail. The Certificates tab of Certificate operations (/certops/certificates) is the inventory view: a paginated, filterable table (status or source) with Set up renewal, Detach, and Change lifecycle actions per row where eligible (see Bringing an existing certificate under automatic renewal). A row whose renewal-setup attempt failed also carries a separate inline Retry link next to its renewal badge (retries that specific setup intent, not the certificate's whole lifecycle). Retired certificates with fresh presence evidence remain visible by default as Revoked · Still observed or Decommissioned · Still observed. The Retired toggle includes other retired entries; Unmanaged only shows observations without an open management period. The Renewals tab lists certificates too, but only the ones with a renewal profile and only in expiry order, so it is a schedule rather than an inventory.
Importing certificates
Import a public certificate through the existing Import tokens flow (public PEM card when CertOps is enabled) or through the CertOps API. This path is for certificates you already hold or that are not tied to an endpoint monitor.
- Public material only: supply a PEM-encoded certificate. Private keys are rejected with HTTP 422 (
PRIVATE_KEY_MATERIAL_REJECTED). - Idempotent on fingerprint: importing the same certificate again (same SHA-256 fingerprint) returns the existing managed certificate instead of creating a duplicate.
- Token linkage: a cert-category token is created or updated alongside the managed certificate.
Endpoint monitor bridge
When CertOps is enabled, endpoint SSL monitoring feeds the managed certificate inventory. The worker observes the public certificate served at a monitored HTTPS endpoint or domain, then records that observation into CertOps when the monitor has a linked token.