Základní pole

Certifikát X.509 verze 1 obsahuje následující pole. Pole verze 2 jsou popsána v polích verze 2. Pole verze 3 jsou popsána v rozšíření verze 3.

Verze

Určuje číslo verze zakódovaného certifikátu. V současné době jsou možné hodnoty tohoto pole 0, 1 nebo 2, ale v budoucnu se to může rozšířit.

---------------------------------------------------------------------
-- Version number. Currently, this can be 0, 1, or 2.
---------------------------------------------------------------------
CertificateVersion ::= INTEGER {v1(0), v2(1), v3(2)}

Sériové číslo

Obsahuje kladné jedinečné celé číslo přiřazené certifikační autoritou (CA) k certifikátu.

---------------------------------------------------------------------
-- Certificate serial number
---------------------------------------------------------------------
CertificateSerialNumber ::= INTEGER

Algoritmus podpisu

Obsahuje identifikátor objektu (OID), který určuje algoritmus používaný certifikační autoritou k podepsání certifikátu. Například 1.2.840.113549.1.1.5 určuje algoritmus hash SHA-1 v kombinaci s šifrovacím algoritmem RSA z laboratoří RSA.

---------------------------------------------------------------------
-- Signature OID
---------------------------------------------------------------------
signature ::= AlgorithmIdentifier

AlgorithmIdentifier ::= SEQUENCE 
{
  algorithm           OBJECT IDENTIFIER,
  parameters          ANY OPTIONAL    
}

Emitent

Obsahuje X.500 rozlišující název certifikační autority, která certifikát vytvořila a podepsala.

---------------------------------------------------------------------
-- Issuer name 
---------------------------------------------------------------------
Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

AttributeTypeValue ::= SEQUENCE 
{
  type       OBJECT IDENTIFIER,
  value      ANY 
}

Platnost

Určuje časový interval, během kterého je certifikát platný. Data do konce roku 2049 používají formát Coordinated Universal Time (Greenwich Mean Time) (yymmddhhmmsz). Kalendářní data od 1. ledna 2050 používají zobecněný formát času (rrrrmmddhhmmssz).

---------------------------------------------------------------------
-- Validity period 
---------------------------------------------------------------------
Validity ::= SEQUENCE 
{
  notBefore           ChoiceOfTime,
  notAfter            ChoiceOfTime
}

ChoiceOfTime ::= CHOICE 
{
  utcTime                 UTCTime,
  generalTime             GeneralizedTime
}

Předmět

Obsahuje rozlišující název entity X.500 přidruženou k veřejnému klíči obsaženému v certifikátu.

---------------------------------------------------------------------
-- Subject name 
---------------------------------------------------------------------
Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

AttributeTypeValue ::= SEQUENCE 
{
  type       OBJECT IDENTIFIER,
  value      ANY 
}

Veřejný klíč

Obsahuje informace o veřejném klíči a přidruženém algoritmu.

---------------------------------------------------------------------
--  Subject public key information
---------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE 
{
  algorithm           AlgorithmIdentifier,
  subjectPublicKey    BITSTRING
}

AlgorithmIdentifier ::= SEQUENCE 
{
  algorithm           OBJECT IDENTIFIER,
  parameters          ANY OPTIONAL    
}

pole verze 2

rozšíření verze 3

certifikáty veřejného klíče X.509