2012-10-11 95 views
9

突然間我的未提交使用makecer/pvk2pfx創建的證書在嘗試發佈ClickOnce應用程序時發生錯誤。這只是上週工作得很好......使用makecer/pvk2pfx時ClickOnce簽名者證書無效簽名

錯誤消息:

Error 2 An error occurred while signing: Failed to sign bin\Debug\app.publish\setup.exe. SignTool Error: The signer's certificate is not valid for signing. SignTool Error: An error occurred while attempting to sign: bin\Debug\app.publish\setup.exe

當我使用的簽名選項卡中的「創建測試證書」選項,證書工作正常,並應用成功發佈。

當手動創建我的makecer/pvk2pfx證書我正在關注的MSDN instructions

當我刪除我的舊手工創建的證書,使用makecer/pvk2pfx創建一個新的,並嘗試使用一個我得到相同錯誤。

的應用程序是一個WPF應用程序針對.NET 4,這是所有在VS 2010 ...

任何想法?

回答

20

後,我於1024指定的證書長度大於它的工作對我來說:

makecert -sv MyApp.pvk -n "CN=MyCompany" -len 2048 MyApp.cer -r 
pvk2pfx -pvk MyApp.pvk -spc MyApp.cer -pfx MyApp.pfx -po MyPassword 

Microsoft發佈了一個更新,該更新會影響所有RSA密鑰長度小於1024位的證書。

http://support.microsoft.com/kb/2661254

+0

是的,這是根本問題。我認爲-len開關不是必須的,但是因爲更新後makecert默認創建了長度大於1024的證書。 –

+3

我的證書無效,因此我嘗試了-len 2048,但它仍然無效。實際的問題是通過添加** - r **然後刪除signtool錯誤來解決的。 – AshRolls

5

在使用makecert使用-r開關(創建自簽名證書)後,使用pvk2pfx生成的pfx證書現在可用於ClickOnce發佈...不確定此處發生了什麼,因爲舊密鑰不是「自簽名的「很長一段時間運行良好......我用來創建工作PFX證書

精確的命令......

makecert -sv MyApp.pvk -n "CN=MyCompany" MyApp.cer -r 

pvk2pfx -pvk MyApp.pvk -spc MyApp.cer -pfx MyApp.pfx