前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >X509证书结构

X509证书结构

作者头像
战神伽罗
发布2020-07-03 10:38:35
1.3K0
发布2020-07-03 10:38:35
举报
文章被收录于专栏:Eureka的技术时光轴

X.509证书结构

代码语言:javascript
复制
Certificate ::= SEQUENCE {
      tbsCertificate TBSCertificate,          --证书主体    
      signatureAlgorithm AlgorithmIdentifier, --证书签名算法标识  
      signatureValue BIT STRING               --证书签名算法值
}

TBSCertificate ::= SEQUENCE {

version [0] EXPLICIT Version DEFAULT v1, --证书版本号

serialNumber CertificateSerialNumber, --证书序列号,对同一CA所颁发的证书,序列号唯一标识证书

signature AlgorithmIdentifier, --证书签名算法标识

issuer Name, --证书发行者名称

validity Validity, --证书有效期

subject Name, --证书主体名称

subjectPublicKeyInfo SubjectPublicKeyInfo, --证书公钥

issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, -- 证书发 行者ID(可选),只在证书版本2、3中才有

subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, --证书主体ID(可选),只在证书版本2、3中才有

extensions [3] EXPLICIT Extensions OPTIONAL --证书扩展段(可选),只在证书版本2、3中才有 }

Version ::= INTEGER { v1(0), v2(1), v3(2) }

CertificateSerialNumber ::= INTEGER

Validity ::= SEQUENCE { notBefore Time, -- 证书有效期起始时间 notAfter Time } -- 证书有效期终止时间

Time ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }

UniqueIdentifier ::= BIT STRING

SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, -- 公钥算法 subjectPublicKey BIT STRING } -- 公钥值

Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension

Extension ::= SEQUENCE {

extnID OBJECT IDENTIFIER,

critical BOOLEAN DEFAULT FALSE,

extnValue OCTET STRING

}

证书实例

本部分包含一个699字节的证书实例。证书版本号为3。该证书包含以下内容:

(a) 证书序列号是17 (0x11);

(b) 证书使用DSA和SHA-1哈希算法签名;

(c) 证书发行者的名字是OU=nist; O=gov; C=US

(d) 证书主体的名字是OU=nist; O=gov; C=US

(e) 证书的有效期从1997-6-30 到 1997-12-31;

(f) 证书包含一个1024 bit DSA 公钥及其参数;

(g) 证书包含一个主体键标识扩展项 (h) 证书是一个CA证书(通过一个基本扩展项标识)

字节 内容 注释 偏移量 (十六进制)

0000 30 82 02 b7 --CERTIFICATE, 30(SEQUENCE类型,下同), 82 (长度字段占两个字节), 02 b7(长度值695)

0004 30 82 02 77 -- tbsCertificate , 30(SEQUENCE类型,下同), 82 (长度字段占两个字节), 02 77(长度值631)

0008 a0 03 -- version, a0(Version),03(长度值3)

0010 02 01 02 -- 02 (Integer) 01(长度值1) 02 (证书版本3)

0013 02 01 11 -- serialNumber, 02 (Integer) 01(长度值1) 11 (证书序列号17)

0016 30 09 -- AlgorithmIdentifier, 30(Sequence), 09(长度值9),

0018 06 07 -- algorithm,06(OBJECT IDENTIFIER),07(长度7)

0020 2a 86 48 ce 38 04 03 --OID 1.2.840.10040.4.3: dsa-with-sha (06-OID, 07-Number 7)

0027 30 2a -- issuer ,30(Sequence), 2a (长度42)

0029 31 0b -- 31(SET), 0b(长度值11)

0031 30 09 -- 30(SEQUENCE),09 (长度值9)

0033 06 03 -- 06(OBJECT IDENTIFIER),03(长度3)

0035 55 04 06 -- OID 2.5.4.6: C (06-OID, 03-Number 3)

0038 13 02 --13(PrintableString),02(长度2)

0040 55 53 -- C = US 0042 31 0c -- 31(SET), 0c长度值12)

0044 30 0a -- 30(SEQUENCE), 0a(长度值10)

0046 06 03 --06(OBJECT IDENTIFIER),03(长度3)

0048 55 04 0a --OID 2.5.4.10: O

0051 13 03 --13(PrintableString),02(长度值2)

0053 67 6f 76 --O = gov

0056 31 0d -- 31(SET), 0d长度值13)

0058 30 0b -- 30(SEQUENCE), 0b(长度值11)

0060 06 03 --06(OBJECT IDENTIFIER),03(长度3)

0062 55 04 0b -- OID 2.5.4.11: OU (06-OID, 03-Number 3)

0065 13 04 -- 13(PrintableString), 04(长度值4)

0067 6e 69 73 74 -- OU = nist 0071 30 1e -- validity, 30(SEQUENCE), 1e(长度值30) 0073 17 0d -- notBefor, 17(UTCTime), 0d(长度13)

0075 39 37 30 36 33 30 30 30 30 30 30 30 5a --'970630000000Z'

0088 17 0d -- notAfter, 17(UTCTime), 0d(长度13)

0090 39 37 31 32 33 31 30 30 30 30 30 30 5a --'971231000000Z'

0103 30 2a -- subject, 30(SEQUENCE), 2a(长度42)

0105 31 0b -- 31(Set), 0b (长度 11)

0107 30 09 --30(SEQUENCE), 09(长度9)

0109 06 03 --06(OID), 03(长度3)

0111 55 04 06 -- OID 2.5.4.6: C

0114 13 02 -- 13(PrintableString), 02(长度2)

0116 55 53 -- C = US

0118 31 0c -- 31(SET), 0c(长度12)

0120 30 0a --30(SEQUENCE), 0a(长度10)

0122 06 03 -- 06(OID, 03(长度 3)

0124 55 04 0a -- OID 2.5.4.10: O

0127 13 03 --13(PrintableString), 03(长度3)

0129 67 6f 76 -- O = gov

0132 31 0d --31(Set), 0d(长度13)

0134 30 0b --30(Sequence), 0b(长度11)

0136 06 03 --06(OID), 03(长度 3)

0138 55 04 0b -- OID 2.5.4.11,OU

0141 13 04 --13(PrintableString), 04(长度4)

0143 6e 69 73 74 --OU = nist

0147 30 82 01 b4 -- sujectPublicKeyInfo, 30(Sequence), 82(长度字段2个字节), 01 b4(长度436)

0151 30 82 01 29 --30(Sequence), 82(长度字段2个字节), 01 29(长度297)

0155 06 07 --06(OID), 07(长度 7)

0157 2a 86 48 ce 38 04 01 -- OID 1.2.840.10040.4.1: dsa

0164 30 82 01 1c30 --(Sequence), 82(长度字段2个字节), 01 1c(长度284)

0168 02 81 80 -- 02(Integer), 81(长度字段占一字节), 80(长度128)

d4 38 02 c5 35 7b d5 0b a1 7e 5d 72 59 63 55 d3 45 56 ea e2 25 1a 6b c5 a4 ab aa 0b d4 62 b4 d2 21 b1 95 a2 c6 01 c9 c3 fa 01 6f 79 86 83 3d 03 61 e1 f1 92 ac bc 03 4e 89 a3 c9 53 4a f7 e2 a6 48 cf 42 1e 21 b1 5c 2b 3a 7f ba be 6b 5a f7 0a 26 d8 8e 1b eb ec bf 1e 5a 3f 45 c0 bd 31 23 be 69 71 a7 c2 90 fe a5 d6 80 b5 24 dc 44 9c eb 4d f9 da f0 c8 e8 a2 4c 99 07 5c 8e 35 2b 7d 57 8d

0299 02 14 --02(Integer), 14(长度20) a7 83 9b f3 bd 2c 20 07 fc 4c e7 e8 9f f3 39 83 51 0d dc dd

0321 02 81 80 --02(Integer), 81(长度字段占一字节), 80(长度128) 0e 3b 46 31 8a 0a 58 86 40 84 e3 a1 22 0d 88 ca 90 88 57 64 9f 01 21 e0 15 05 94 24 82 e2 10 90 d9 e1 4e 10 5c e7 54 6b d4 0c 2b 1b 59 0a a0 b5 a1 7d b5 07 e3 65 7c ea 90 d8 8e 30 42 e4 85 bb ac fa 4e 76 4b 78 0e df 6c e5 a6 e1 bd 59 77 7d a6 97 59 c5 29 a7 b3 3f 95 3e 9d f1 59 2d f7 42 87 62 3f f1 b8 6f c7 3d 4b b8 8d 74 c4 ca 44 90 cf 67 db de 14 60 97 4a d1 f7 6d 9e 09 94 c4 0d

0452 03 81 84 --03(BitString), 81(长度字段占一字节), 84(长度132) 02 81 80 aa 98 ea 13 94 a2 db f1 5b 7f 98 2f 78 e7 d8 e3 b9 71 86 f6 80 2f 40 39 c3 da 3b 4b 13 46 26 ee 0d 56 c5 a3 3a 39 b7 7d 33 c2 6b 5c 77 92 f2 55 65 90 39 cd 1a 3c 86 e1 32 eb 25 bc 91 c4 ff 80 4f 36 61 bd cc e2 61 04 e0 7e 60 13 ca c0 9c dd e0 ea 41 de 33 c1 f1 44 a9 bc 71 de cf 59 d4 6e da 44 99 3c 21 64 e4 78 54 9d d0 7b ba 4e f5 18 4d 5e 39 30 bf e0 d1 f6 f4 83 25 4f 14 aa 71 e1

0587 a3 32 --a3(extentions), 32(长度50)

0589 30 30 --30(Sequence), 30(长度50)

0591 30 0f --30(Sequence), 0f(长度15)

0593 06 03 --06(OID), 03(长度3)

0595 55 1d 13 -- OID 2.5.29.19(basicConstraints)

0598 01 01 ff --01(BOOLEAN), 01(长度1), ff(True)

0601 04 05 --04(OctetString), 05(长度5)

0603 30 03 01 01 ff

0608 30 1d --30(Sequence), 1d(长度29)

0610 06 03 --06(OID), 03(长度3)

0612 55 1d 0e -- OID 2.5.29.14: subjectKeyIdentifier

0615 04 16 --04(OctetString), 16(长度22) 04 14 e7 26 c5 54 cd 5b a3 6f 35 68 95 aa d5 ff 1c 21 e4 22 75 d6 0639 30 09 --30(Sequence), 09(长度9)

0641 06 07 --06(OID), 07(长度7)

0643 2a 86 48 ce 38 04 03 -- OID 1.2.840.10040.4.3: dsa-with-sha

0650 03 2f -- signature,03(BitString), 2f(长度47) 30 2c 02 14 a0 66 c1 76 33 99 13 51 8d 93 64 2f ca 13 73 de 79 1a 7d 33 02 14 5d 90 f6 ce 92 4a bf 29 11 24 80 28 a6 5a 8e 73 b6 76 02 68

出处:http://blog.csdn.net/jiadelin/archive/2008/06/18/2559984.aspx

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档