首页 文章

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

提问于
浏览
2

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

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

乔治,提前谢谢

4 回答

  • 0

    是否有您发现的makecert命令行将生成包含私钥的证书文件?我从来没有 . 我看到有人暗示这样一个事实,即有一个版本的makecert可以产生.pfx文件,但也从未见过 .

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

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

  • 2

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

  • 3

    问题是,X509 Certificate standard(证书)不包含私钥 . 证书包含主题公钥信息(也称为公钥)和有关私钥持有者的信息,但标准不支持包含私钥 . 这是PKI的基本思想 - 证书是您与世界共享的公共信息,私钥是您非常安全地拥有的 .

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

  • 4

    如果要构建PFX文件,则应该同时具有x509 cert公钥和私钥文件,您可以使用makecert命令生成该文件 . 可以使用PVk2PFX命令生成PFX,您可以找到Microsoft SDK安装指令 .

相关问题