为什么创建自签名证书失败?

时间:2014-02-24 23:54:03

标签: certificate self-signed 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

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

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

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 文件,但错误似乎表明它无法加载它?我在哪里错了?

2 个答案:

答案 0 :(得分:4)

尝试创建自签名证书时,不需要其他证书来生成自签名证书。因为正如名称所示,它是自签名的(它包含用于创建它的私钥)。

创建公共证书时,您应该提供父级来使用它。验证此子证书的真实性时,还应在计算机上安装父证书。这就是Chain Trust的概念。

在“本地计算机”商店中,在受信任的根证书下,您应该拥有许多权威机构的.cer,例如Verisign。

-iv代表发行人的私钥。 (家长.pvk)

-ic代表发行人的证书。 (家长.cer)

答案 1 :(得分:3)

在第一个命令中,您创建了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中的“个人”证书存储区。