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
}