X509 数字证书结构定义
在搭建自己的CA服务 – OpenSSL CA 实战文章中我们介绍了如何使用 openssl 命令来颁发证书,那么证书到底是什么?
我们说到的证书都指的是x509数字证书,这篇文章介绍X509证书的数据结构定义,我们了解数字证书的数据结构定义之后,就对 openssl 是如何生成证书的原理有简单了解,也可以辅助我们更快更牢固的掌握openssl的使用,知其然,知其所以然嘛。
x509数字证书结构定义
version |
---|
serial number |
algorithm identifier |
issuer |
period of validity |
subject |
subject’s public key |
issuer unique id |
subject unique id |
extensions |
signature |
version
版本号表示x509证书结构定义的版本,当前最新的版本是3。要注意的是从0开始,0表示版本1。
serial number
序列号是由CA颁发给这个证书的唯一序号。还记得我们在学&用 openssl.conf里面提到的 01.pem,02.pem吗?这个01,02就是CA给这个证书分配的序号。
algorithm identifier
这个属性在x509标准中的名字是 signature ,但是这个属性的值实际上不包含任何签名信息。这个属性值是签名算法名称。
issuer
CA的 distinguished_name 值。如果忘记了 distinguished_name 是什么,学&用 openssl.conf里面有解释。
period of validity
证书有效期。
subject
证书拥有者的 distinguished_name 。通常是通过 distinguished_name 中的 Common Name 来标识这个证书主体。Common Name 通常用来唯一标识一个主体。
subject’s public key
证书主体的公钥。
issuer unique id
这个属性可选。
与 issuer 属性的差别是, issuer 通过 distinguished_name 标识一个颁发者,而 distinguished_name 又是通过 Common Name 来标识,在 Common Name 重复的情况下,就用这个属性来唯一标识。
subject unique id
与 issuer unique id 类似,在 subject 属性存在重复的情况下,使用此属性。
extensions
扩展属性。通常CA会利用这个属性增加一些非标准定义的内容。
signature
这个属性在x509标准中称为 encrypted 。
将上面的属性做hash,然后使用CA的私钥对hash执行数字签名,得到值存放在这个属性。
本文链接:https://www.yunweipai.com/4540.html
网友评论comments