PKCS10证书请求语法
PKCS10证书请求语法
该文主要介绍 PKCS10
即证书请求语法。
PKCS10证书请求语法1
1. 简介
PKCS #10(Certification Request Syntax Specification)
本文档描述了认证请求的语法。认证请求由可分辨名称、公钥和可选的一组属性组成,这些属性由请求认证的实体共同签名。证书请求被发送到证书颁发机构,该机构将请求转换为 X.509
公钥证书。
2. 定义
- Name: 唯一标识或区分
X.500
目录中对象的类型。此类型在X.501
中定义。在X.509
证书中,类型标识证书颁发者和证书使用者(公钥经过认证的实体)。
3. 语法
证书请求由三部分组成:认证请求信息、签名算法标识符和认证请求信息上的数字签名。认证请求信息由实体的可分辨名称、实体的公钥和一组提供有关实体的其他信息的属性组成。
CertificationRequest ::= SEQUENCE {
certificationRequestInfo CertificationRequestInfo,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING
}
CertificationRequestInfo ::= SEQUENCE {
version INTEGER { v1(0) } (v1,...),
subject Name,
subjectPKInfo SubjectPublicKeyInfo,
attributes [0] Attributes
}
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier ,
subjectPublicKey BIT STRING
}
Attribute ::= SEQUENCE {
type ATTRIBUTE.&id({IOSet}),
values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type})
}
AlgorithmIdentifier ::= SEQUENCE {
algorithm ALGORITHM.&id({IOSet}),
parameters ALGORITHM.&Type({IOSet}{@algorithm}) OPTIONAL
}
graph LR
classDef dashed stroke-dasharray: 5
CertificationRequest[证书请求] --> certificationRequestInfo[认证请求信息]
CertificationRequest --> signatureAlgorithm[签名算法标识]
CertificationRequest --> signature[认证请求信息数字签名]
certificationRequestInfo --> version[版本]
certificationRequestInfo --> subject[使用者信息]
certificationRequestInfo --> subjectPKInfo[认证公钥信息]
certificationRequestInfo --> attributes[附加信息的属性集合]
subject --> type[oid]
subject --> value[值]
subjectPKInfo --> algorithm[公钥算法]
subjectPKInfo --> subjectPublicKey[公钥值]
algorithm --> al_algorithm[算法OID]
algorithm --> al_parameters[算法类型]
- 使用者信息是集合
3.1. 签名
签名过程包括两个步骤
- 认证请求信息经过
DER
编码,产生一个八位字节字符串。 - 在指定的签名算法下,使用认证请求主体的私钥对步骤1的结果进行签名,生成一个位字符串,即签名。
参考
本文由作者按照 CC BY 4.0 进行授权