1、数字证书文件cer和pfx的区别

作为文件形式存在的证书一般有这几种格式:

1.带有私钥的证书

由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。

2.二进制编码的证书

证书中没有私钥,DER 编码二进制格式的证书文件,以cer作为证书文件后缀名。

3.Base64编码的证书

证书中没有私钥,BASE64 编码格式的证书文件,也是以cer作为证书文件后缀名。

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

在pfx证书的导入过程中有一项是“标志此密钥是可导出的。这将您在稍候备份或传输密钥”。一般是不选中的,如果选中,别人就有机会备份你的密钥了。如果是不选中,其实密钥也导入了,只是不能再次被导出。这就保证了密钥的安全。

如果导入过程中没有选中这一项,做证书备份时“导出私钥”这一项是灰色的,不能选。只能导出cer格式的公钥。如果导入时选中该项,则在导出时“导出私钥”这一项就是可选的。

如果要导出私钥(pfx),是需要输入密码的,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx),不知道加密私钥的密码,也是无法导入证书的。相反,如果只是导入导出cer格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不需要加密。



2、关于pfx证书和cer证书

 pfx证书,同时包含了公钥信息和私钥信息


cer证书只包含公钥信息

cer格式证书如何部署在Nginx cer证书文件_后缀名

如果客户端与网站通信时需要用到私钥(基本所有需要数字证书的网站都会用到私钥),则cer证书是无法正常访问网站的,网站会提示“该页要求客户证书”:

由于cer证书只包含公钥信息,一般只能用于解密使用(解密该公钥对应的私钥加密的数据)。

Pfx证书既可以导出为pfx证书,也可以导出为cer证书。

Pfx证书导出时,会提示是否导出私钥,导出私钥即pfx证书,不到出则是cer证书。

如果选择导出私钥,出于安全性考虑,浏览器会提示你指定一个密码用于保护该私钥,日后再次导入该pfx证书时,浏览器会要求你提供该私钥保护密码。

导入pfx证书时,需要指定私钥保护密码,另外还有一个选项“标志此密钥为可导出密钥。这将允许您稍后备份或传输密钥”,出于安全性考虑,该选项默认是不勾选的,如果不勾选,下次从浏览器导出该证书时,则无法导出pfx格式了,只能导出不包含私钥的cer格式了。

pfx证书导入时,如果未勾选“密钥可导出”,则下次导出时,由于无法导出私钥,只能导出cer证书了。

pfx证书默认导入到“个人”选项卡下。

cer证书只能导入到“其他人”选项卡下,无法导入到“个人”选项卡下。

cer证书不能导出为pfx证书。

图片部分来自网络