cer,pvk和pfx文件有什么区别?

Jon*_*len 189 security public-key

cer,pvk和pfx文件有什么区别?另外,我保留哪些文件以及我希望将哪些文件交给我的反对方?

eri*_*son 131

Windows使用.cer扩展名来获取X.509证书.这些可以是"二进制"(ASN.1 DER),也可以用Base-64编码并应用页眉和页脚(PEM); Windows也会认出来.要验证证书的完整性,您必须使用颁发者的公钥来检查其签名...这又是另一个证书.

Windows使用.pfx作为PKCS#12文件.此文件可以包含各种加密信息,包括证书,证书链,根颁发机构证书和私钥.其内容可以加密保护(使用密码)以保持私钥的私密性并保持根证书的完整性.

Windows使用.pvk作为私钥文件.我不确定Windows遵循哪些标准(如果有的话).希望它们是PKCS#8编码密钥. Emmanuel Bourg报告称这些是专有格式.有些文档可用.

您永远不应该披露您的私钥.它们包含在.pfx和.pvk文件中.

通常,您只与其他方交换您的证书(.cer)和任何中间发行人的证书(即所有CA的证书,除了根CA).

  • PVK文件不在PKCS#8中,它是一种专有格式.见http://www.drh-consultancy.demon.co.uk/pvk.html (6认同)
  • @Pacerier 是的,.pfx 就足够了。我不确定 .pvk 的意义是什么;我只能猜测它是在无知中发明的。 (2认同)

小智 53

在Windows平台中,这些文件类型用于证书信息.通常用于SSL证书和公钥基础结构(X.509).

  • CER文件: CER文件用于存储X.509证书.通常用于SSL认证,以验证和识别Web服务器的安全性.该文件包含有关证书所有者和公钥的信息.CER文件可以是二进制文件(ASN.1 DER)或使用包含页眉和页脚的Base-64编码(PEM),Windows将识别这些布局中的任何一个.
  • PVK文件: 代表私钥.Windows使用PVK文件存储私钥,以便在各种Microsoft产品中进行代码签名.PVK是专有格式.
  • PFX文件 Personal Exchange Format,是一个PKCS12文件.它包含各种加密信息,例如证书,根证书颁发机构证书,证书链和私钥.它使用密码进行加密保护,以保护私钥的私密性并保持根证书的完整性.PFX文件还用于各种Microsoft产品,例如IIS.

有关更多信息,请访问:证书文件:.Cer x .Pvk x .Pfx

  • Cer文件:...."文件包含有关证书所有者以及公共和私有证书密钥的信息"......不正确.正如埃里克森在答案中指出的那样:它只包含有关公钥的信息.带有私钥和公钥的.cer文件将毫无用处. (4认同)

And*_*rew 27

这是我个人的,超浓缩的笔记,就这个主题目前属于我,对于任何感兴趣的人:

  • 无论PKCS12PEM可存储整个证书链:公钥,私钥根(CA)证书.
  • .pfx == .p12 ==" PKCS12 "
    • 完全加密
  • .pem == .cer == .cert ==" PEM "
    • base-64(字符串)编码X509证书(二进制),带有页眉和页脚
      • base-64基本上只是一串"A-Za-z0-9 + /",用于表示0-63,6位二进制,依次为序列,有时带有1或2"="字符剩余时间结束("="是"填充/垃圾/忽略/丢弃"字符)
      • 页眉和页脚是"----- BEGIN CERTIFICATE -----"和"----- END CERTIFICATE -----"或"-----开始加密的私钥---" - "和"-----结束加密的私钥-----"
    • Windows将.cer和.cert识别为cert文件
  • .jks ==" Java密钥库 "
    • 只是API使用的特定于Java的文件格式
      • .p12和.pfx文件也可以与JKS API一起使用
  • " Trust Stores "包含公共,可信,根(CA)证书,而" Identity/Key Stores "包含私有身份证书; 但是,它们是相同的.

  • 那么.pvk 是在哪里定义的呢? (2认同)

Rya*_*tti 19

我不久前发现过这样的事情...... 在msdn上 查看一下(参见第一个答案)

综上所述:

.cer - 以X.509标准格式存储的证书.此证书包含有关证书所有者的信息以及公钥和私钥.

.pvk - 文件用于存储用于代码签名的私钥.您还可以基于.pvk私钥文件创建证书.

.pfx - 代表个人交换格式.它用于在单个文件中交换公共和私有对象.可以从.cer文件创建pfx文件.也可用于创建软件发布者证书.

我根据评论中的建议总结了页面中的信息.

  • 此外,链接中的一些信息是错误的.例如,您无法从证书中提取私钥.明显. (14认同)
  • 除链接本身外,我还建议引用或总结链接的内容.通过这种方式,您可以获得适当的信誉,并保护我们在下次MS重新设计网站时不会丢失信息. (2认同)
  • 对于上面的评论,这与提取无关。在 .cer 文件中拥有私钥是没有意义的。.cer 文件应该与外界共享,因此它只携带公钥。 (2认同)