2012-09-04 89 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"

相關問題