使用makecert.exe创建自签名CA证书

时间:2012-09-04 12:34:40

标签: windows ssl ssl-certificate makecert

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

每当我尝试执行此命令(提升)......

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

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

  

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

任何帮助都会被贬低。

问候。

3 个答案:

答案 0 :(得分:13)

我将命令复制到命令提示符中并得到了同样的错误。但是,我重新输入了命令并且它有效。我怀疑名称参数"CN=MyCert CA"中的一个字符是一个特殊字符,可能是从文字处理器复制的。

答案 1 :(得分:11)

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

问题不在于makecert,而在于您输入命令的方式。 Windows命令shell cmd.exe未将“CN=MyCert CA”视为引用词。它改为看到两个裸字“CN=MyCertCA”,其中“智能引号”是该词的一部分。

  • ASCII直双引号,"的代码点为U + 0022(在C#或C中也称为'\ x22')。
  • 左侧双“智能”引号“,的代码点为U + 201C(C#中也称为”\ u201C“)。
  • 右侧双“智能”引用,的代码点为U + 201D(在C#中又称为“\ u201D”)。

因而错误。

答案 2 :(得分:1)

如果名称中没有CN =,您也会收到同样的错误。

例如,-n "My Name"出现此错误,但-n "CN=My Name"成功了