CSR文件和P10文件
1. CSR:证书签发请求(Certificate Signing
Request),或者叫做认证申请,是一个发送到CA的请求认证信息。有两种格式,应用最广泛的是由PKCS#10定义的,另一个用的少的是由SPKAC定义的,主要应用于网景浏览器。
2. 在PKCS#10定义中,CSR有两种编码格式:二进制(ASN.1或DERàDistinguished Encoding
Rules)和文本格式(the text or PEM (Privacy Enhanced Mail) formatted CSR
is the binary CSR after it has been Base-64 encoded to create a
text version of the CSR.)
Base64编码/解码
即:二进制(ASN.1或DER)
3. CSR文件包含的信息描述如下:
CertificationRequest ::= SEQUENCE {
certificationRequestInfoCertificationRequestInfo,
signatureAlgorithm AlgorithmIdentifier{
{ SignatureAlgorithms }},
signature BIT STRING
}
包含两个部分:证书请求信息部分、签名部分(算法和签名)。
证书请求信息:version、Distinguished Name、public
key、Attributes(属性集),另外还可能有可选的字段,如postal address和Email
address,这两个字段可以应用于证书的撤销。
签名:签名算法和数字签名(private key签名)
注意:私钥不包含在CSR文件中,但是应用于数字签名。
4. 请求信息定义如下:
CertificationRequestInfo::= SEQUENCE {
version INTEGER { v1(0) } (v1,…),
subject Name,
subjectPKInfo SubjectPublicKeyInfo{
{ PKInfoAlgorithms }},
attributes [0] Attributes{
{ CRIAttributes }}
}
5. CSR文件生成步骤如下:
1) 根据Version、Distinguished Name、Public Key、Attributes生成请求证书;
2) 用Private
Key加密证书请求信息;
3) 根据请求信息、签名算法和签名生成CSR文件;
6. CSR文件包括的属性有:
Status
Check
Information</