当我用JAVA自带的keytool生成一个密钥库时,它会自动生成一个自签名的X.509证书.格式如下:
-----------------------------------------------------------------------------------------------------------------
[Certificate ::= SEQUENCE { tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signature BIT STRING }
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 }
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE { notBefore CertificateValidityDate, notAfter CertificateValidityDate }
CertificateValidityDate ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
UniqueIdentifier ::= BIT STRING
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
Extensions ::= SEQUENCE OF Extension
Extension ::= SEQUENCE { extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING }
-------------------------------------------------------------
问题1:这个X.509证书中哪部分是签名信息?哪部分是证书信息?
问题2:当用keytool生成的密钥文件中会将私有密钥以及证书 链作为一个密钥项进行管理,那么,这里所说的证书链 在上面的X.509证书中有什么体现?
问题3:当我通过CA对我的证书进行签名时,CA所返回的信息在 上面的X.509证书中有什么体现?
这是我想问的问题,如果您有时间的话,请指点我一下,谢谢.
|
|