基本字段

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)}

序列号

包含证书颁发机构 (CA) 分配给证书的一个唯一正整数。

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

签名算法

包含 对象标识符 (OID) ,该对象标识符指定 CA 用于对证书进行签名的算法。 例如,1.2.840.113549.1.1.5 指定 SHA-1 哈希算法与来自 RSA 实验室的 RSA 加密算法结合使用。

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

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

颁发者

包含创建和签名证书的 CA 的 X.500 可分辨名称 (DN) 。

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

RelativeDistinguishedName ::= SET OF AttributeTypeValue

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

有效期

指定证书有效的时间间隔。 2049 年底的日期使用协调世界时 (格林威治平均时间) 格式 (yymmdddhmmssz) 。 从 2050 年 1 月 1 日开始的日期使用通用时间格式 (yyymmddhmmssz) 。

---------------------------------------------------------------------
-- 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 公钥证书