数字证书格式详解

x509(基本格式)

基本的证书格式,只包含公钥。x509证书由用户公共密钥和用户标识符组成。此外还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等信息。

PKCS#7(数字信封)

Public Key Cryptography Standards #7。PKCS#7一般把证书分成两个文件,一个公钥、一个私钥,有PEM和DER两种编码方式。PEM比较多见,是纯文本的,一般用于分发公钥,看到的是一串可见的字符串,通常以.crt,.cer,.key为文件后缀。DER是二进制编码。PKCS#7一般主要用来做数字信封。

PKCS#10

证书请求语法。

PKCS#12(p12或pfx)

Public Key Cryptography Standards #12。一种文件打包格式,为存储和发布用户和服务器私钥、公钥和证书指定了一个可移植的格式,是一种二进制格式,通常以.pfx或.p12为文件后缀名
使用OpenSSL的pkcs12命令可以创建、解析和读取这些文件。P12是把证书压成一个文件,xxx.pfx 。主要是考虑分发证书,私钥是要绝对保密的,不能随便以文本方式散播。所以P7格式不适合分发。

.pfx文件可以被加密或者签名的,要想读取此文件可能需要解密。

PKCS系列标准

实际上PKCS#7、PKCS#10、PKCS#12都是PKCS系列标准的一部分。相互之间并不是替代的关系,而是对不同使用场景的定义。

证书编码格式

PEM和DER两种编码格式。

PEM(可读)

内容为Base64编码的ASCII码文件,有类似"-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----"的头尾标记。

查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -nooutApache和*NIX服务器偏向于使用这种编码格式。

DER(不可读)

证书中没有私钥,DER 编码二进制格式的证书文件。
查看DER格式证书的信息:openssl x509 -in certificate.der -inform der -text -nooutJava和Windows服务器偏向于使用这种编码格式。

各种后缀含义

文件的内容和后缀没有必然的关系,但是一般使用这些后缀来表示这是什么文件。

JKS

Java Key Store(JKS)。

CSR

证书请求文件(Certificate Signing Request)。这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的个人信息)。
查看的办法:openssl req -noout -text -in my.csr,DER格式的话加上-inform der。

CER

一般指使用DER格式的证书。

CRT

证书文件。可以是PEM格式。

KEY

通常用来存放一个公钥或者私钥。查看KEY的办法:openssl rsa -in mykey.key -text -noout如果是DER格式的话,同理应该这样了:openssl rsa -in mykey.key -text -noout -inform der这是使用RSA算法生成的key这么查看,DSA算法生成的使用dsa参数。

CRL

证书吊销列表 (Certification Revocation List),是一种包含撤销的证书列表的签名数据结构。

总结

由定义可以看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥,并且证书的编码可以有多种。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值