cer、pvk 和 pfx 文件有啥区别?
Posted
技术标签:
【中文标题】cer、pvk 和 pfx 文件有啥区别?【英文标题】:What is the difference between a cer, pvk, and pfx file?cer、pvk 和 pfx 文件有什么区别? 【发布时间】:2011-01-18 13:08:52 【问题描述】:cer、pvk 和 pfx 文件有什么区别?另外,我应该保留哪些文件,应该将哪些文件提供给我的交易对手?
【问题讨论】:
还有[1]、[2]、[3] 【参考方案1】:其实我不久前也遇到过这样的事情……check it out over on msdn(见第一个答案)
总结:
.cer - 以 X.509 标准格式存储的证书。此证书包含有关证书所有者的信息...以及公钥和私钥。
.pvk - 文件用于存储用于代码签名的私钥。您还可以根据 .pvk 私钥文件创建证书。
.pfx - 代表个人交换格式。它用于在单个文件中交换公共和私有对象。可以从 .cer 文件创建 pfx 文件。也可以用来创建Software Publisher Certificate。
我根据cmets的建议总结了页面上的信息。
【讨论】:
我建议在链接本身之外引用或总结链接的内容。这样,您既可以给予适当的信任,又可以保护我们在下次 MS 重新设计他们的网站时不会丢失信息。 我看过那个链接,但我没有完全回答这个问题。 另外,链接中的一些信息是错误的。例如,您不能从证书中提取私钥。很明显。 对于上面的评论,这不是关于提取的。在 .cer 文件中拥有私钥是没有意义的。 .cer 文件应该与外界共享,因此它只携带公钥。【参考方案2】:Windows 对 X.509 证书使用 .cer 扩展名。这些可以是“二进制”(ASN.1 DER),也可以使用 Base-64 编码并应用页眉和页脚(PEM); Windows 也可以识别。要验证证书的完整性,您必须使用颁发者的公钥来检查其签名……这反过来又是另一个证书。
Windows 将 .pfx 用于 PKCS #12 文件。该文件可以包含各种加密信息,包括证书、证书链、根授权证书和私钥。可以对其内容进行加密保护(使用密码),以保持私钥的私密性并保持根证书的完整性。
Windows 使用 .pvk 作为私钥文件。 我不确定 Windows 遵循什么标准(如果有的话)。希望它们是 PKCS #8 编码的密钥。 Emmanuel Bourg 报告说这些是专有格式。一些documentation 可用。
您永远不应该泄露您的私钥。这些包含在 .pfx 和 .pvk 文件中。
通常,您只与其他方交换您的证书 (.cer) 和任何中间颁发者的证书(即您的所有 CA 的证书,根 CA 除外)。
【讨论】:
PVK 文件不在 PKCS#8 中,它是一种专有格式。见drh-consultancy.demon.co.uk/pvk.html 在 Windows SDK 中查找 pvk2pfx.exe 实用程序 @erickson,发明 .pvk 有什么意义? .pfx 还不够吗? @Pacerier 是的,.pfx 就足够了。我不确定 .pvk 的意义是什么;我只能猜测它是在无知中发明的。【参考方案3】:在 Windows 平台中,这些文件类型用于证书信息。通常用于 SSL 证书和公钥基础结构 (X.509)。
CER 文件: CER 文件用于存储 X.509 证书。通常用于 SSL 认证,以验证和识别 Web 服务器的安全性。该文件包含有关证书所有者和公钥的信息。 CER 文件可以是二进制 (ASN.1 DER) 或使用 Base-64 编码并包含页眉和页脚 (PEM),Windows 将识别其中任何一种布局。 PVK 文件: 代表私钥。 Windows 使用 PVK 文件存储用于在各种 Microsoft 产品中进行代码签名的私钥。 PVK 是专有格式。 PFX 文件 个人交换格式,是一个 PKCS12 文件。这包含各种加密信息,例如证书、根授权证书、证书链和私钥。它使用密码进行加密保护,以保持私钥私有并保持根证书的完整性。 PFX 文件还用于各种 Microsoft 产品,例如 IIS。欲了解更多信息,请访问:Certificate Files: .Cer x .Pvk x .Pfx
【讨论】:
【参考方案4】:以下是我个人的超级精简笔记,就目前与我相关的主题而言,供任何感兴趣的人使用:
PKCS12 和 PEM 都可以存储整个证书链:public keys, private keys 和 root (CA) certs。 .pfx == .p12 == "PKCS12" 完全加密 .pem == .cer == .cert == "PEM" (或者可能不是。 .. 可能是二进制的...见 cmets ...) base-64(字符串)编码X509 cert(二进制)带有页眉和页脚 base-64 基本上只是一串“A-Za-z0-9+/”,用于表示 0-63,一次 6 位二进制,按顺序排列,有时后面有 1 或 2 个“=”字符当有剩菜时结束(“=”是“填充/垃圾/忽略/丢弃”字符) 页眉和页脚类似于“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”或“-----BEGIN ENCRYPTED PRIVATE KEY -----" 和 "-----END ENCRYPTED PRIVATE KEY-----" Windows 将 .cer 和 .cert 识别为证书文件 .jks == "Java Key Store" 只是 API 使用的一种特定于 Java 的文件格式 .p12 和 .pfx 文件也可以与 JKS API 一起使用 “Trust Stores”包含公共的、受信任的、root (CA) certs,而 “Identity/Key Stores”包含私有的身份证书;文件方面, 但是,它们是相同的。【讨论】:
那么 .pvk 是在哪里定义的? @zwcloud 我给出了我当时所知道的。其他答案给出了这一点。.cer
文件通常是二进制文件,根本没有 base64 编码,如接受的答案中所述。
@oligofren 似乎是合法的,尽管那些似乎不是 PEM 的,至少其中一些是二进制的是 .der
的。 ssl.com/guide/…以上是关于cer、pvk 和 pfx 文件有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章