Champs de base

Un certificat X. 509 version 1 contient les champs suivants. Les champs de la version 2 sont abordés dans les champs de la version 2. Les champs de la version 3 sont traités dans les extensions de la version 3.

Version

Indique le numéro de version du certificat encodé. Actuellement, les valeurs possibles de ce champ sont 0, 1 ou 2, mais cela peut être développé à l’avenir.

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

Numéro de série

Contient un entier positif unique attribué au certificat par l’autorité de certification.

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

Algorithme de signature

Contient un identificateur d’objet (OID) qui spécifie l’algorithme utilisé par l’autorité de certification pour signer le certificat. Par exemple, 1.2.840.113549.1.1.5 indique un algorithme de hachage SHA-1 associé à l’algorithme de chiffrement RSA de RSA Laboratories.

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

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

Émetteur

Contient le nom unique (DN) X. 500 de l’autorité de certification qui a créé et signé le certificat.

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

RelativeDistinguishedName ::= SET OF AttributeTypeValue

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

Validité

Indique l’intervalle de temps pendant lequel le certificat est valable. Les dates jusqu’à la fin du 2049 utilisent le format de temps universel coordonné (heure de Greenwich) (YYMMDDHHMMSSZ). Les dates commençant au 1er janvier 2050 utilisent le format d’heure généralisée (yyyymmddhhmmssz).

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

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

Objet

Contient le nom unique X.500 de l’entité associée à la clé publique incluse dans le certificat.

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

RelativeDistinguishedName ::= SET OF AttributeTypeValue

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

Clé publique

Contient la clé publique et des informations sur l’algorithme associé.

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

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

Champs de la version 2

Extensions de la version 3

Certificats de clé publique X. 509