1

我正在尝试生成自签名证书,但无法完成。我正在使用此命令创建自签名证书颁发机构:

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

所有帐户都有效,我可以查看受信任的根证书颁发机构下的新条目。

接下来我使用以下命令创建签名证书:

makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root1.cer

但命令失败:

Error: Can't load the issuer certificate ('root1.cer')
Failed

我的印象是-ic交换机会创建root1.cer文件,但错误似乎表明它无法加载它?我哪里错了?

4

2 回答 2

5

当尝试创建自签名证书时,它不需要另一个证书来生成它。因为顾名思义,它是自签名的(它由属于它包含的公钥的私钥签名)。

创建通用证书时,您应该提供父母使用它。在验证此子证书的真实性时,您还应该在计算机上安装父证书。这就是链信任的概念。

在您的“本地机器”存储中,在受信任的根证书下,您应该拥有来自许多权威机构(例如 Verisign)的 .cer。

-iv代表发行者的私钥。(父 .pvk)

-ic代表发行人证书。(父.cer)

于 2014-03-23T21:12:35.020 回答
4

在您的第一个命令中,您创建了 root.cer。

makecert [...] -r -sv root.pvk root.cer -ss Root -sr localMachine

在您的第二个命令中,您告诉它颁发者证书在 root1.cer 中(带有参数“-ic root1.cer”)。这就是导致找不到 root1.cer 的错误消息的原因。

因此,将第二个命令中的“root1.cer”更改为“root.cer”。它应该如下所示:

makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer -sv powershelluser.pvk powershelluser.cer

这将执行以下操作:

  1. 生成一个新密钥,将其放在 powershelluser.pvk 中。
  2. 使用 root.pvk 中的密钥签署新证书,并使用 root.cer 中的信息设置新证书的颁发者。
  3. 将新证书写入 powershelluser.cer,并将其写入 CurrentUser 中的“个人”证书存储。
于 2014-07-29T19:51:36.823 回答