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

Certificate 为什么创建自签名证书失败?,certificate,self-signed,makecert,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=Power

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

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

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

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

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

-iv代表发行人的私钥。Parent.pvk


-ic代表发行人的证书。Parent.cer

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

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

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

-iv代表发行人的私钥。Parent.pvk


-ic代表发行人的证书。Parent.cer在第一个命令中创建了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
这样做的目的如下:

生成新密钥,并将其放置在powershelluser.pvk中。 使用root.pvk中的密钥对新证书进行签名,并使用root.cer中的信息设置新证书的颁发者。 将新证书写入powershelluser.cer,并将其写入CurrentUser中的个人证书存储。
在第一个命令中,您创建了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
这样做的目的如下:

生成新密钥,并将其放置在powershelluser.pvk中。 使用root.pvk中的密钥对新证书进行签名,并使用root.cer中的信息设置新证书的颁发者。 将新证书写入powershelluser.cer,并将其写入CurrentUser中的个人证书存储。