x509和pkcs12以及pkcs7的关系和区别

都是格式。
x509,公钥证书,只有公钥。
p7,签名或加密。可以往里面塞x509,同时没有签名或加密内容。

p12,含有私钥,同时可以有公钥,有口令保护。


p7的作用就是电子信封。


X509是基本规范
P7和P12是两个实现规范,P7是数字信封,P12是带有私钥的证书规范。


x509是数字证书的规范,P7和P12是两种封装形式。比如说同样的电影,有的是avi格式,有的是mpg,大概就这个意思。
P7一般是把证书分成两个文件,一个公钥一个私钥,有PEM和DER两种编码方式。PEM比较多见,就是纯文本的,P7一般是分发公钥用,看到的就是一串可见字符串,扩展名经常是.crt,.cer,.key等。DER是二进制编码。
P12是把证书压成一个文件,.pfx 。主要是考虑分发证书,私钥是要绝对保密的,不能随便以文本方式散播。所以P7格式不适合分发。.pfx中可以加密码保护,所以相对安全些。
在实践中要中,用户证书都是放在USB Key中分发,服务器证书经常还是以文件方式分发。服务器证书和用户证书,都是X509证书,就是里面的属性有区别。


X509 是证书规范
PKCS#7 是消息语法 (常用于数字签名与加密)
PKCS#12 个人消息交换与打包语法 (如.PFX .P12)打包成带公钥与私钥
还有其它常用的是PKCS#10 是证书请求语法。

你可能感兴趣的:(x509和pkcs12以及pkcs7的关系和区别)