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

问题描述 投票:4回答:3

我正在尝试在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)失败

任何帮助,将不胜感激。

问候。

windows ssl ssl-certificate makecert
3个回答
13
投票

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


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')。

因而错误。


1
投票

如果名称中没有CN =,也可能会出现相同的错误。

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

© www.soinside.com 2019 - 2024. All rights reserved.