2012-06-18 69 views
6

我的公司希望阻止客戶安裝我們的產品時出現的UAC彈出窗口。我們從VeriSign(VeriSign Class 3 Code Signing 2010 CA)購買了一個證書,並且我收到了一個MyCompany.cer文件。如何簽署MSI?

我通過雙擊它並選擇「個人」商店來安裝證書。它現在出現在證書管理單元中,以及其他一些證書。 snapin說它的預期目的是「代碼簽名」。我通過複製指紋獲得了SHA1散列。

我嘗試登錄微星使用此命令:

signtool sign /sha1 <thumbprint> myInstaller.msi 

,並得到一個消息 「SignTool錯誤:沒有證書被發現,符合所有給定的標準。」

如果我放棄「/ sha1」,我會獲得該商店中大多數其他證書的列表 - 說明其預期用途的是「<全部>」我的證書未列出。

我在做什麼錯?

+0

[我如何使用我的代碼簽名證書籤署exes和dll](http://stackoverflow.com/questions/2718776/how-do-i-sign-exes-and-dlls-with-my代碼簽名證書) –

+0

我已經嘗試了該帖子和其他人的一切,但無濟於事。我注意到Details選項卡中的「Key Usage」項目有一個小小的黃色「!」符號。值爲「數字簽名(80)」 – Sisiutl

回答

2

這是非常古老的,但我希望它可以幫助別人。

所有你需要檢查你有那個.cer文件私有密鑰,如果你打開它,你會看到一個鑰匙圖標的地方接着一句的第一次:

You have a private key for this certificate 

注意你必須將證書安裝在生成密鑰對(和CSR)的同一臺計算機上。顯然,如果你沒有私鑰,你不能簽署任何東西。