2015-06-23 32 views
1

我試圖創建由makecert這裏自我標誌證書是我做的:Makecert:證書基本約束擴展還沒有被觀察到

makecert -n "CN=TuyenTk CA, C=VN, ST=Hanoi, L=Hoan Kiem" -cy authority 
-h 1 -a sha1 -sv "D:\TuyenTk CA.pvk" -r "D:\TuyenTk CA.cer" 


makecert -n "CN=TuyenTk" -ic "D:\TuyenTk CA.cer" -iv "D:\TuyenTk CA.pvk" 
-eku "1.3.6.1.5.5.7.3.3" -cy end -a sha1 -h 0 -sky exchange -pe "D:\TuyenTk.cer" 


pvk2pfx -pvk "D:\TuyenTk CA.pvk" -spc "D:\TuyenTk CA.cer" 
-pfx "D:\TuyenTk.pfx" -pi "myPassWord" 

第一行是進行自我標誌證書(CA證書),第二行是使用CA cert簽署其他證書,最後是生成pfx文件來簽署exe文件。

雖然所有上述3個命令報道的成功,當我雙擊TuyenTk CA.cerTuyenTk.cer,在細節選項卡窗口告訴大家,基本約束是至關重要的。所以,當我使用TuyenTk.pfx文件讓我簽字的exe文件,在數字簽名選項卡,該證書是無效的:證書基本約束擴展還沒有被觀察到

我查看證書的詳細信息之前安裝它,並經過安裝在證書存儲的受信任根或個人位置,我仍然看到錯誤。

我該如何解決這個問題?謝謝!

+0

在話題在這裏,我想,但如果你沒有得到答案,你可以嘗試的安全或密碼的網站。 –

回答

0

要創建自簽名的根CA證書,請嘗試以下方法:

makecert -r -pe -m 1200 -len 2048 -n "CN=TuyenTk CA, C=VN, ST=Hanoi, L=Hoan Kiem" -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv "D:\TuyenTk_CA.pvk" "D:\TuyenTk_CA.cer" 

我不放過「H 1」給你的基本約束無限簽署深度;一些SSL軟件包不喜歡無限的路徑長度,因此您可以將「」或「」的鍵層放在「-h 5」中,或者您覺得可以滿足您需求的任何值。我添加的開關:

-pe    Make private key exportable 
    -m 1200   Make CA key valid for 100 years (1200 months) 
    -ss CA   This key goes into the CA certificate store 
    -sr CurrentUser Certificate store location 
    -sky signature Key type (use for signing) 

我還在名稱中加了一個下劃線(而不是空白)可能沒有必要,但我的證書文件沒有空格(這些實用程序有時可能很奇怪)。

導入CA證書時,請確保您在「受信任的根證書頒發機構\本地計算機」實體存儲位置中執行此操作。舉例來說,使用這個從管理CMD提示:

certutil -addstore -v root "D:\TuyenTk_CA.cer" 

這些步驟爲我工作在XP和今天的工作在Windows 7希望這有助於!

  • DRAC
+0

仍然有錯誤。不知道爲什麼。我正在使用Windows 8.1 Pro 32位 – Sakura

+0

您可以發佈您已採取的步驟以及每個步驟的結果嗎?例如,CA證書是否創建?您是否可以將其安裝到受信任的根證書頒發機構\本地計算機商店中?您使用什麼選項創建CA證書?您在創建和簽署代碼簽名證書時遵循了哪些選項/步驟?怎麼樣簽署代碼(你使用SignTool?有什麼選擇...?)。 – Drac

+0

是的,它創建成功,我可以將它安裝在Trusted Root \ Local Computer中。我複製你的命令然後粘貼到命令行,但刪除'-ss'和'sr'。然後我手動安裝它。我在證書商店看到它。除了「基本限制」,每件事情都很好。我可以使用CA證書籤署其他證書,但此CA證書的任何證書籤名也是「基本約束」警告 – Sakura