X509 数字证书结构定义

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执行数字签名,得到值存放在这个属性。

相关文章

相关标签/搜索