2012-09-04 58 views
4

我试图在32位Windows 7(虚拟)上创建自签名CA证书。 makecert是位于C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin>的v7.1。使用makecert.exe创建自签名CA证书

每当我试图执行此命令(高架)...

makecert.exe -r -n “CN=MyCert CA” -pe -sv MyCert.pvk -a sha1 -len 2048 
      -b 09/04/2012 -e 09/04/2018 -cy authority MyCert.cer 

...我得到提示输入密码,但是当我确认我得到:

Error: CryptCertStrToNameW failed => 0x80092023 (-2146885597) Failed

任何帮助被折服。

问候。

回答

13

我将您的命令复制到命令提示符中,并得到相同的错误。但是,我重新输入了命令并且它工作正常。我怀疑名称变元"CN=MyCert CA"中的一个字符是一个特殊字符,可能是从文字处理器复制而来的。

+0

我从记事本复制了文本。但我尝试了几个不同的CA名称(包括没有空格),但没有帮助。重写整个命令的确有窍门。 – no9

+0

对于那些谁发现自己在这里,像我这样的 - 如果你从一个网站copypasted,你可能已经得到unicody弯引号(如OP - 查在他CN引号),而不是正确的ASCII版本:“ – Will

11

这是一个古老的问题,但它似乎是你使用文字处理器“智能报价”,而不是ASCII双引号。

所以这个问题不是makecert,而是你输入命令的方式。 Windows命令外壳程序cmd.exe未将“CN=MyCert CA”视为带引号的单词。它会看到两个裸词,“CN=MyCertCA”,“智能引语”是该词的一部分。

  • ASCII双引号"的代码点为U + 0022(在C#或C中又名'\ x22')。
  • 左双“智能”报价”,具有U + 201C(在C#又名‘\ u201C’)
  • 右双的代码点‘智能’报价,具有U型代码点+ 201D(又名 '\ U201D' 在C#)。

,因此错误。

+0

感谢清理出来 – no9

1

你也可以得到同样的错误,如果你没有CN =的名称。

对于例如我有这个错误-n "My Name",但它成功-n "CN=My Name"

相关问题