Glossary

Precertificate (CT precertificate)

Last verified

Definition

A precertificate is a deliberately unusable copy of a certificate, marked with a poison extension, that a CA logs in CT to obtain SCTs before final issuance.

A precertificate, defined in RFC 6962, contains the same data as the certificate a CA intends to issue, plus a critical CT Precertificate Poison extension that makes ordinary clients reject it. The CA submits it to CT logs, collects the returned SCTs, and then signs the final certificate with those SCTs embedded in an extension. This solves a chicken-and-egg problem: a certificate cannot contain timestamps for itself.

Why it matters

Embedded SCTs are the most common way certificates satisfy browser CT requirements, because they need no server configuration. Root programs also treat a logged precertificate as evidence that the CA intended to issue the matching certificate: if the precertificate violates the rules, it counts as misissuance even if the final certificate was never issued or logged. When you search CT logs you will therefore often see two entries per certificate, the precertificate and the final certificate.

Example

openssl x509 -in precert.pem -noout -text | grep -A1 "Poison"

A precertificate shows CT Precertificate Poison: critical. The final certificate lacks that extension and instead shows CT Precertificate SCTs: followed by the log IDs and timestamps it collected.

Common misconceptions

  • Two CT entries mean the CA issued two certificates. Usually one is the precertificate and the other the final certificate, with the same serial number.
  • A precertificate can be installed on a server. The poison extension is marked critical, so clients refuse it.
  • The final certificate must also be logged. Not necessarily: logging the precertificate and embedding its SCTs satisfies browsers, although some CAs log both.

See also