关于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
选项,私钥没有嵌入证书中,但是它在哪里)?
答案 0 :(得分:3)
即使没有-pe(启用私钥导出),私钥仍应存储在您指定的证书存储中。在您的示例中,该存储是LocalMachine物理存储和TrustedRoot逻辑存储。您可以通过打开mmc(start-> run-> mmc)并添加“证书”管理单元并选择“计算机帐户”作为商店来进行检查。
更简单的测试是:
makecert -sk myKey -n "CN=test" -ss my -pe
然后start-> run-> certmgr.msc(打开本地用户存储的证书管理器)并检查个人证书存储。在那里你应该有一个名为test的证书,附带一个私钥。
然后,您可以右键单击证书并将其导出到.pfx文件,以获取嵌入了certifcate和私钥的单个文件。
编辑: -pe选项代表可导出的私钥。如果使用-pe,您可以选择使用私钥从certmgr导出密钥。如果您不使用-pe,那么您将无法选择导出私钥(我的评论下面应该说“没有-pe”而不是“with -pe”)。