【问题标题】:Where is the private key?私钥在哪里?
【发布时间】:2010-10-14 01:04:40
【问题描述】:

关于makecert命令的两个简单问题,

假设我正在使用以下命令:

makecert -n "CN=PowerShell Local Certificate Root" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localMachine

私钥会自动在证书管理器中的某处注册,还是只会在文件 root.pvk 中?

假设我正在使用以下命令:

makecert -r -pe -n "CN=XYZ Company" -ss my

执行此命令后,私钥存放在哪里(由于我没有指定-pe选项,所以私钥没有嵌入证书中,而是在哪里)? p>

【问题讨论】:

    标签: certificate key private pki


    【解决方案1】:

    即使没有 -pe(启用私钥导出),私钥仍应存储在您指定的证书存储中。在您的示例中,该存储是 LocalMachine 物理存储和 TrustedRoot 逻辑存储。您可以通过打开 mmc (start->run->mmc) 并添加证书管理单元并选择“计算机帐户”作为存储来进行检查。

    一个更简单的测试是:

    makecert -sk myKey -n "CN=test" -ss my -pe
    

    然后开始->运行->certmgr.msc(打开本地用户存储的证书管理器)并检查个人证书存储。在那里,您应该有一个名为 test 的证书,并附有私钥。

    然后,您可以右键单击证书并将其导出到 .pfx 文件,以获取嵌入了证书和私钥的单个文件。

    编辑: -pe 选项代表可导出的私钥。如果使用 -pe,您将可以选择使用私钥从 certmgr 导出密钥。如果您不使用 -pe,那么您将无法选择导出私钥(我在下面的评论应该说“不使用 -pe”而不是“使用 -pe”)。

    【讨论】:

    • 酷,sipwiz!我尝试使用 -pe 运行您的命令,并且在证书管理器中,它仍然显示为带有证书的私钥。我很困惑使用-pe的功能是什么?使用和不使用这个选项的区别?
    • 如果您右键单击证书并选择导出,您将能够包含私钥。如果您使用 -pe 创建证书,则不会获得该选项。
    • 对不起,sipwiz,另一个问题。对于导出到 pfx 文件,我可以理解导出证书的使用场景可能是让其他人将其安装为受信任的发布者。但是一起导出provate key的使用场景是什么?
    • 感谢 sipwiz,在您的帮助下,我认为我的第一个问题的答案是,私钥将嵌入证书和文件 root.pvk 中,对吗?我的第二个问题的答案是私钥将嵌入证书中,对吗?
    • 如果您希望能够将证书用于任何有用的事情,例如对 SSL 流进行身份验证,您必须有权访问私钥。 .pfx 文件不是 X509 证书格式,而是一种容器格式,可以保存证书和密钥,使其易于传输。
    猜你喜欢
    • 2013-06-02
    • 2017-12-14
    • 2016-02-13
    • 2019-07-08
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多