X.509 证书定义

概念

  • 证书撤销列表 certificate revocation list (CRL)
  • 证书颁发机构 certification authority (CA)
  • 注册机构 registration authority (RA)
  • 公用密钥基础设施 Public Key Infrastructure (PKI)

编码

  • DER X.509依赖于的唯一编码规则(distinguished encoding rules,DER)是BER的子集
  • PEM 基于DER编码后内容使用BASE64编码且带头带尾的特定格式

证书相关文件后缀

  • PEM
  • CER
  • CRT

证书字段

 Certificate  ::=  SEQUENCE  {tbsCertificate       TBSCertificate,signatureAlgorithm   AlgorithmIdentifier,signatureValue       BIT STRING  }
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 v3subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,-- If present, version MUST be v2 or v3extensions      [3]  EXPLICIT Extensions OPTIONAL-- If present, version MUST be v3}
Version
Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
CertificateSerialNumber
CertificateSerialNumber  ::=  INTEGER
AlgorithmIdentifier
AlgorithmIdentifier  ::=  SEQUENCE  {algorithm               OBJECT IDENTIFIER,parameters              ANY DEFINED BY algorithm OPTIONAL  }
Name
 Name ::= CHOICE { -- only one possibility for now --rdnSequence  RDNSequence }RDNSequence ::= SEQUENCE OF RelativeDistinguishedNameRelativeDistinguishedName ::=SET SIZE (1..MAX) OF AttributeTypeAndValueAttributeTypeAndValue ::= SEQUENCE {type     AttributeType,value    AttributeValue }AttributeType ::= OBJECT IDENTIFIERAttributeValue ::= ANY -- DEFINED BY AttributeTypeDirectoryString ::= CHOICE {teletexString           TeletexString (SIZE (1..MAX)),printableString         PrintableString (SIZE (1..MAX)),universalString         UniversalString (SIZE (1..MAX)),utf8String              UTF8String (SIZE (1..MAX)),bmpString               BMPString (SIZE (1..MAX)) }
Validity
Validity ::= SEQUENCE {notBefore      Time,notAfter       Time }
Time
Time ::= CHOICE {utcTime        UTCTime,generalTime    GeneralizedTime }
UniqueIdentifier
UniqueIdentifier  ::=  BIT STRING
SubjectPublicKeyInfo
SubjectPublicKeyInfo  ::=  SEQUENCE  {algorithm            AlgorithmIdentifier,subjectPublicKey     BIT STRING  }
Extensions
Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension
Extension
Extension  ::=  SEQUENCE  {extnID      OBJECT IDENTIFIER,critical    BOOLEAN DEFAULT FALSE,extnValue   OCTET STRING-- contains the DER encoding of an ASN.1 value-- corresponding to the extension type identified-- by extnID}

参考资料

https://datatracker.ietf.org/doc/html/rfc5280#ref-X.690
https://www.cnblogs.com/NathanYang/p/9951282.html
https://www.cnblogs.com/20175211lyz/p/12722360.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部