pus*_*pop 5 digital-certificate digital-signature x509
由CA签名的X509数字证书包含这两个字段.1.签名算法2.签名值我理解"签名算法"字段包含CA用于签署证书的散列算法.并且"签名值"是在散列上计算的签名.我的问题是什么是散列的数据?它是CSR(证书签名请求)或整个CSR的公钥吗?
它既不是公钥,也不是用于请求证书的CSR,它构成了签名输入.根据RFC 5280 - Internet X.509公钥基础结构证书和证书撤销列表(CRL)配置文件:
signatureValue字段包含根据ASN.1 DER编码的tbsCertificate计算的数字签名.ASN.1 DER编码的tbsCertificate用作签名函数的输入.
(tbs = 要签名)的语法tbsCertificate是:
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}
Run Code Online (Sandbox Code Playgroud)
此结构的DER编码是计算签名的数据.