1. 证书的整体结构

【1】证书内容、【2】签名算法标识、【3】签名值

用ASN.1语法描述如下:

Certificate::=SEQUENCE{tbsCertificate      TBSCertificate,signatureAlgorithm  AlgorithmIdentifier,signatureValue      BIT STRING
}

1.1 签名结果

签名结果是CA对tbsCertificate进行签名的结果,类型为BIT STRING。


1.2 签名算法标识

签名算法标识为CA对tbsCertificate进行签名所使用的算法;类型为AlgorithmIdentifier,其ASN.1语法描述如下:

AlgorithmIdentifier::=SEQUENCE{algorithm       OBJECT IDENTIFIER,parameters      ANY DEFINED BY algorithm OPTIONAL
}

其中,algorithm给出了算法的OID;可选的parameters给出算法的参数。

需要注意,algorithm同时说明了杂凑算法和数字签名算法,常见的有:

(1)MD5wihRSAEncryption,MD5 Hash函数和RSA签名算法配合使用,OID为1.2.840.113549.1.1.4

(2)SHA1withRSAEncryption,SHA-1 Hash函数和RSA签名算法配合使用,OID为1.2.840.113549.1.1.5


1.3 证书内容

证书内容是需要被CA签名的信息,ASN.1语法描述如下:

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,subjectUniqueID   [2]   IMPLICIT UniqueIdentifier OPTIONAL,extensions        [3]   EXPLICIT Extensions OPTIONAL
}

其中,issuerUniqueID和subjectUniqueID只能在版本2或者3中出现;extensions只能在版本3中出现。

(未完,待续... ...)

X.509证书编码及解析相关推荐

  1. X.509证书解析程序(C++版)

    这个解析程序使用C++写成,更多详细内容可参考GitHub项目. X.509证书结构 Certificate ::= SEQUENCE {tbsCertificate TBSCertificate, ...

  2. x.509数字证书编码详解

    转自:http://blog.sina.com.cn/s/blog_49b531af0102eahs.html x.509数字证书编码详解 一. X.509数字证书的编码 X.509证书的结构是用AS ...

  3. pem格式证书编码 x509_证书编码格式

    一.证书编码格式 1.DER(Distinguished Encoding Rules) DER是二进制格式,不可读.查看DER格式证书的信息 openssl x509 -in certificate ...

  4. pem格式证书编码 x509_公钥证书编码解读

    一.文件编码 PEM (Privacy Enhancement Message),定义见 结构组成 == {header} body {tail} 示例 -----BEGIN PUBLIC KEY-- ...

  5. 给出x.509证书的实例并分析其工作方式

    本篇文章对x.509的结构进行了详细的分析,对x.509证书的工作原理的描述有所不足,仅供参考,希望能对大家有所帮助! x.509证书: Certificate: Data: Version: 1 ( ...

  6. X.509证书DN之详解

    X.509使用DN(Distinct Name)来唯一标识一个实体,其功能类似我们平常使用的ID,不过不同的是,DN不再是类似 123456 这样得数字标识,而是采用多个字段来标识一个实体,例如&qu ...

  7. 什么是X.509证书?X.509证书工作原理及应用?

    X.509是公钥基础设施(PKI)的标准格式.X.509证书就是基于国际电信联盟(ITU)制定的X.509标准的数字证书.X.509证书主要用于识别互联网通信和计算机网络中的身份,保护数据传输安全.X ...

  8. X.509证书的介绍

    目录 1.X.509简介 2.证书组成结构 3.证书文件扩展名 4.生成一个自签名证书的示例 5.生成签名请求及CA 签名 1.X.509简介 X.509是密码学里公钥证书的格式标准.X.509证书已 ...

  9. 【转】x.509证书在WCF中的应用(CS篇)

    [转自]x.509证书在WCF中的应用(CS篇) 为什么要用x.509证书? WCF的服务端和客户端之间,如 果不作任何安全处理(即服务端的<security mode="None&q ...

  10. DTLS协议中的509证书和密钥如何传输

    DTLS协议 在openssl中,创建DTLS环境都已经被封装好了 ssl_ctx = SSL_CTX_new(DTLS_method()); 接下去我们编程的时候有两种方式去使用DTLS,1 是直接 ...

最新文章

  1. 微服务架构实施原理详解
  2. linux怎么命令设置网络连接,Linux网络操作命令
  3. 一個便宜的高负载网站架构
  4. 自己动手架设linux下Web服务器(图)6
  5. mysql中phpmyadmin安装教程_phpmyadmin安装方法
  6. 小程序需要php知识吗,小程序和PHP学习笔记 ----- 不定期更新。
  7. eclipse导入jar包的三种方法
  8. CCF201912-4 区块链(100分)【模拟】
  9. 趣图:程序猿和运维狗的工作日常……
  10. 川大计算机复试公平吗,看清华、川大这波操作,你还会担心网络复试会不公平吗?...
  11. USB2.0接口管脚定义
  12. 脊柱外科患者资料管理系统
  13. IDEA多module的项目共享配置文件的处理
  14. 吐槽一下程序员职场那些令人迷惑的行为
  15. SAP PP 空bom 清单及处理
  16. 游戏开发九宫格战斗架构解析具体解释
  17. SCRM:SpringBoot + RabbitMQ + 企微 实现发送消息到企业微信
  18. 【老生谈算法】matlab实现遗传算法选取最优参数——遗传算法
  19. Nii图像的读取、操作与保存
  20. 《疯狂Java讲义(第4版)》-----第4章【控制台五子棋】

热门文章

  1. jsp三大指令(总结)
  2. 美团首次展现无人配送链条,发布末端配送机器人 | CES 2019...
  3. clock_gettime接口和linux时间系统
  4. vim粘贴代码格式变乱
  5. 析构函数定义为虚函数原因
  6. c#_delegate_异步调用_BeginInvoke
  7. hdu 1754 I hate it (线段树)
  8. 关于C#操作mysql数据库乱码
  9. 大学计算机课程复习--汇编语言
  10. 选择checkbox显示隐藏内容