通常情况下,作为文件形式存在的证书一般有三种格式:
- 第一种:带有私钥的证书,由Public Key Cryptography Standards #12 ,PKCS#12标准定义 ,包含了公钥和私钥的二进制格式的证书形式,以.pfx 作为证书文件后缀名。
- 第二种: DER Encoded Binary (.cer) 二进制编码的证书,证书中没有私钥,DER 编码二进制格式的证书文件,以.cer 作为证书文件后缀名。
- 第三种: Base64 Encoded(.cer) ,Base64 编码的证书,证书中没有私钥,BASE64 编码格式的证书文件,也是以.cer 作为证书文件后缀名。
由定义可以看出,只有 pfx 格式的数字证书是包含有私钥的,cer 格式的数字证书里面只有公钥没有私钥。
Cer 证书只包含公钥信息,如果客户端与网站通信时需要用到私钥(基本所有需要数字证书的网站都会用到私钥),则 cer 证书是无法正常访问网站的,网站会提示“该页要求客户证书”。由于 cer 证书只包含公钥信息,一般只能用于解密使用(解密该公钥对应的私钥加密的数据)。在申请证书的机器上存储了私钥信息,因此,可以把 CER 证书导入为 PFX 证书,并可以把 PFX 证书导出,这样其他机器就可以安装 PFX 证书了。
Pfx 证书既可以导出为 pfx 证书,也可以导出为 cer 证书。Pfx 证书导出时,会提示是否导出私钥,导出私钥即 pfx 证书,不导出私钥就是 cer 证书。如果选择导出私钥,出于安全性考虑,需要指定一个密码来保护该私钥,后续再次导入该 pfx 证书时,需要提供保护该私钥密码,才能在机器上安装证书。