我正在尝试生成自签名证书,但无法完成。我正在使用此命令创建自签名证书颁发机构:
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 文件,但错误似乎表明它无法加载它?我在哪里错了?
答案 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
执行以下操作: