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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用makecert.exe创建自签名CA证书相关的知识,希望对你有一定的参考价值。

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

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

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)失败

任何帮助,将不胜感激。

问候。

答案

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

另一答案

这是一个老问题,但看起来你使用的是文字处理器“智能引号”而不是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')。

因而错误。

另一答案

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

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

以上是关于使用makecert.exe创建自签名CA证书的主要内容,如果未能解决你的问题,请参考以下文章

借助makecert.exe让自己成为CA提供商

makecert 制作数字证书 给DLL加一个数字签名

如何在没有 GUI 的情况下运行 makecert.exe?

如何用makecert生成数字证书!

如何将程序进行数字签名?

驱动程序签名:如何让 MakeCert 测试证书在 x64 上工作