Поделиться через


Основные поля

Сертификат X.509 версии 1 содержит следующие поля. Поля версии 2 рассматриваются в разделе Поля версии 2. Поля версии 3 рассматриваются в разделе Расширения версии 3.

Версия

Указывает номер версии закодированного сертификата. В настоящее время возможные значения этого поля: 0, 1 или 2, но в будущем это поле может быть расширено.

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

Серийный номер

Содержит положительное уникальное целое число, присвоенное сертификату центром сертификации (ЦС).

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

Алгоритм подписи

Содержит идентификатор объекта (OID), указывающий алгоритм, используемый ЦС для подписи сертификата. Например, 1.2.840.113549.1.1.5 указывает на использование хэш-алгоритма SHA-1 вместе с алгоритмом шифрования RSA, разработанного RSA Laboratories.

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

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

Издатель

Содержит различающееся имя X.500 (DN) ЦС, создавшего и подписавшего сертификат.

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

RelativeDistinguishedName ::= SET OF AttributeTypeValue

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

Срок действия

Указывает промежуток времени, в течение которого действует сертификат. Даты до конца 2049 года используют формат времени по Гринвичу (yymmddhhmmssz). Даты, начинающиеся с 1 января 2050 года, используют обобщенный формат времени (ггггммддчммсс).

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

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

Тема

Содержит различающееся имя X.500 объекта, связанного с открытым ключом, содержащимся в сертификате.

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

RelativeDistinguishedName ::= SET OF AttributeTypeValue

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

Открытый ключ

Содержит открытый ключ и данные связанного алгоритма.

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

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

Поля версии 2

Расширения версии 3

Сертификаты открытого ключа X.509