如何签署MSI?

时间:2012-06-18 20:54:54

标签: certificate code-signing signtool

我公司希望阻止客户安装我们产品时出现的UAC弹出窗口。我们从VeriSign购买了证书(VeriSign Class 3 Code Signing 2010 CA),我收到了一份MyCompany.cer文件。

我通过双击并选择“个人”商店来安装证书。它现在出现在证书管理单元中,以及其他几个证书。 snapin说其预期目的是“代码签名”。我通过复制指纹获得了SHA1哈希。

我尝试使用此命令对msi进行签名:

signtool sign /sha1 <thumbprint> myInstaller.msi

并收到消息 “SignTool错误:未找到符合所有给定条件的证书。”

如果我放弃“/ sha1”,我会得到商店中大多数其他证书的清单 - 那些表示其预期目的的是“&lt; All&gt;”我的证书没有列出。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

这已经很老了,但我希望它有所帮助。

首先,您需要检查是否有该.cer文件的私钥,如果您打开它,您应该看到一个Key图标,然后是句子:

You have a private key for this certificate

请注意,您必须在生成de Key对(和CSR)的同一台计算机中安装证书。显然,如果您没有私钥,则无法签署任何内容。