Certificate 为什么我在尝试制作.cer进行测试时总是失败?

Certificate 为什么我在尝试制作.cer进行测试时总是失败?,certificate,ssl-certificate,Certificate,Ssl Certificate,我正在尝试制作一个测试证书,我正在使用这个网站作为一个教程,介绍如何在创建密码后输入密码,它在命令提示符中说失败,这是为什么 我所做的: 首先,打开命令提示符并键入: cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 第二,我打字 makecert -sv myPrivateKeyFile.pvk -n "TestCert" myCertFile.cer -b 01/01/2011 -e 01/01/2015 -r

我正在尝试制作一个测试证书,我正在使用这个网站作为一个教程,介绍如何在创建密码后输入密码,它在命令提示符中说失败,这是为什么

我所做的:

首先,打开命令提示符并键入:

  cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
第二,我打字

  makecert -sv myPrivateKeyFile.pvk -n "TestCert" myCertFile.cer -b 01/01/2011 -e 01/01/2015 -r
然后我创建密码,然后在sencond弹出框中输入密码,然后在命令提示符中显示failed

当我再次输入时,弹出窗口询问密码,这一次首先弹出,我输入它,它说:

错误:CryptCertStrotNamew失败=>0x80092023(-2146885597)


我之所以会出现这个错误,是因为我在运行cmd时没有右键单击它。因此,当您遇到此问题时,您需要右键单击cmd,然后以管理员身份运行,看看这是否解决了您的问题。

我通过以管理员身份运行该程序解决了此问题,但我还必须以LDAP样式更改证书的名称,如下所示(CN=…):


由于某些原因,我无法从Dropbox文件夹中正确运行makecert。因此,请尝试将其移动到像C:\这样的实心磁盘上,然后重试。

我在为自签名证书指定CA名称时也收到了此错误,换句话说,如果您指定“-cy authority”和“-r”选项,则不要通过-n选项在名称中显式指定CA名称。

这对我来说有点像鸟枪调试。在阅读了指南之后,我开始这样做:

makecert.exe/b 01/01/2014/e 01/01/2114/len 256/m 1200/n“CN=内部软件”/pe/r/sr本地机器测试证书cer

这里有两个导致错误的缺陷:

  • /e
    /m
    可能不应该重叠;看起来有点明显,但他们没有记录它,也没有为它创建一个表达错误的消息
  • /len 256
    是无效值--太低。这在一条好的错误消息中似乎也不太明显/记录/表达<代码>512确实有效。我没有费心寻找下限值,但默认情况下使用
    1024
  • 我最终成功地使用了它:

    makecert.exe/b 01/01/2014/e 01/01/2114/len 512/pe/r/n“CN=内部软件”/sr localMachine Test\u Cert.cer


    ... 因为你做得不对?显示您所做的,否则您的问题无法回答。更新我的帖子以显示我的想法:如果您的系统上有多个makecert.exe,请确保您运行的是最新的makecert.exe。如果不是这样,你是真的键入了“TestCert”部分,还是从Word文档粘贴了它?如果是这样,引号本身可能来自不受支持的字符集。第三:尝试将计算机的日期/时间更改为闰日以外的日期/时间:),因为您使用的名称无效。使用-n“CN=TestCert”有趣的语法。“CN=”这件事帮了我的忙。这个前缀有什么影响?有人能解释一下吗?“CN=”是X.500标准的一部分。“CN”代表“通用名称”。请参阅LDAP协议上的命名约定。
        makecert -sv myPrivateKeyFile.pvk -n "TestCert" myCertFile.cer -b 01/01/2011 -e 01/01/2015 -r
    
    makecert -sv myPrivateKeyFile.pvk -n "CN=TestCert" myCertFile.cer -b 01/01/2011 -e 01/01/2015 -r