X.509标准规定了证书包含的信息。
何为证书?
我们先来看看证书使用的过程:
假设A要使用数字签名发送消息给B,A首先通过Hash函数生成信息的摘要,然后使用自己的私钥对摘要进行加密,生成数字签名。然后将消息和数字签名一并发送给B。B通过已有的A的公钥对数字签名进行解密,然后通过同样的Hash函数生成消息的摘要,对比两份摘要,如果相同则代表消息正确。
这里存在一个问题,如何确保B已有的公钥就是A的公钥?有可能B中存在的公钥被他人修改,从而冒用A的身份发消息给B。
所以我们需要引入证书。
证书中心(certificate authority,简称CA)使用他们的私钥对B的公钥和相关的信息进行加密,生成数字证书。B在发送消息给A时同时发送数字证书,A通过证书中心的公钥解开数字证书,获取到B的公钥,再判断摘要是否相同即可。
综上,证书就是CA对证书申请者的公钥和其他信息加密的结果,而X.509标准就规定了证书中到底要包含哪些信息。