Certificate 为什么我们需要pfx(密钥交换)文件?

Certificate 为什么我们需要pfx(密钥交换)文件?,certificate,pki,Certificate,Pki,如果我们使私钥可导出(在makecert中使用-pe选项),那么理论上我们既有可导出的私钥,也有公钥(证书中的公钥)——它们可以传输或导入到另一台机器 所以,我的问题是,为什么我们仍然需要创建.pfx文件(包含私钥和公钥的密钥交换文件)——使私钥可以在证书中导出可以做任何我们想做的事情?pfx文件可能涵盖哪些使私钥在证书中可导出无法实现的场景 提前感谢,, George您的pfx文件可以进行密码保护,这将增加一层保护您是否找到了生成包含私钥的证书文件的makecert命令行?我从来没有。我曾看到

如果我们使私钥可导出(在makecert中使用-pe选项),那么理论上我们既有可导出的私钥,也有公钥(证书中的公钥)——它们可以传输或导入到另一台机器

所以,我的问题是,为什么我们仍然需要创建.pfx文件(包含私钥和公钥的密钥交换文件)——使私钥可以在证书中导出可以做任何我们想做的事情?pfx文件可能涵盖哪些使私钥在证书中可导出无法实现的场景

提前感谢,,
George

您的pfx文件可以进行密码保护,这将增加一层保护

您是否找到了生成包含私钥的证书文件的makecert命令行?我从来没有。我曾看到有人暗指,有一个版本的makecert可以生成.pfx文件,但也从未见过

这意味着,如果需要私钥文件,您最多可以使用makecert创建两个文件。一个用于证书,一个用于私钥。您可以将这两个文件复制到另一台计算机,并使用makecert导入它们

.pfx证书格式的优点是,您可以将两个文件与证书和私钥合并为一个文件。这更方便,也意味着您可以将文件与.Net X509Certificate2类一起用于SSL流。

问题是,(证书)不包括私钥。证书包含主体公钥信息(又名公钥)和有关私钥持有者的信息,但标准不支持包含私钥。这是PKI的基本思想-证书是您与世界共享的公共信息,私钥是您非常安全地持有的东西


使私钥可以在任何机制(例如makecert)中导出,意味着您告诉该产品该密钥可以导出。它没有指定用于存储它的文件格式。pfx文件是存储私钥的一种方式,它使用。Java密钥存储(*.jks)是做同样事情的另一种方法。大多数商业支持的标准都有类似的共同特征——它们通过加密来保护私钥。可以使用密码解锁加密。它们将私钥与描述它的证书耦合

如果要构建PFX文件,您应该同时拥有x509证书公钥和私钥文件,可以使用makecert命令生成该文件。可以使用PVk2PFX命令生成PFX,您可以直接找到Microsoft SDK安装。

谢谢Sébastien,我认为在证书中,私钥也是加密的。我看不出scenairos pfx文件比具有可导出私钥的证书更好和必须的原因。“是否有您发现的生成包含私钥的证书文件的makecert命令行?我从来没有。”--我是指makecert-pe。有任何注释吗?-pe命令不会在证书文件中包含私钥。你可以使用-pe自己检查,将证书文件复制到另一台计算机,导入它,你就会看到没有私钥。我很困惑-MSDN中的pe表示,它用于使私钥可导出。请您澄清一下好吗?MSDN说,“-pe将生成的私钥标记为可导出。这允许私钥包含在证书中。”但只有在您使用certmgr导入然后导出之后。您很容易验证,请尝试我上面提到的测试。从您的评论中,我了解到PFX不能在PKI环境中使用?我说得对吗?因为你不想让你的私钥在密码保护下四处跳跃?