在学习SSL数字证书时,x509、p7、p10、公钥、私钥、等概念非常多,趁着学习的机会梳理总结一下。
X509 是数字证书的规范。
P7和P12是两种封装形式,
PKCS#7是消息语法 (常用于数字签名与加密),也就是常说的P7。P7 的标准一般主要用来做数字信封,根证书很多用.p7b的后缀。P7一般是把证书分成两个文件,一个公钥一个私钥,有PEM和DER两种编码方式。PEM比较多见,就是纯文本的,P7一般是分发公钥用,看到的就是一串可见字符串,扩展名经常是.crt,.cer,.key等。DER是二进制编码。
PKCS#12是个人消息交换与打包语法 (如.PFX 、.P12),P12是把证书压成一个文件,.pfx,里面不仅有公钥还有私钥,并且你还可以 用一个密钥保护该证书 。主要是考虑分发证书,私钥是要绝对保密的,不能随便以文本方式散播。所以P7格式不适合分发。.pfx中可以加密码保护,相对安全些。 在实践中,用户证书都是放在USB Key中分发,服务器证书经常还是以文件方式分发。服务器证书和用户证书,都是X509证书,就是里面的属性有区别。
PKCS#10是证书请求语