如何签署MSI?

9
我的公司希望避免客户在安装我们的产品时出现UAC弹窗。我们从VeriSign购买了一个证书(VeriSign Class 3 Code Signing 2010 CA),我得到了一个 MyCompany.cer 文件。
我通过双击该证书并选择“个人”存储来安装该证书。它现在出现在“证书”控制台中,与其他几个证书一起。该控制台显示其预期用途为“代码签名”。我通过复制指纹获取了SHA1哈希值。
我尝试使用以下命令对msi进行签名:
signtool sign /sha1 <thumbprint> myInstaller.msi

并收到消息 "SignTool 错误: 没有找到满足所有给定条件的证书。"

如果我省略 "/sha1",我会得到存储中大多数其他证书的列表 - 其中说它们的预期目的是 "<All>",我的证书没有列出。

我做错了什么?


我已经尝试了那篇帖子和其他的一切,但都没有成功。我注意到在“详细信息”选项卡中的“密钥用途”项目上有一个小黄色的“!”符号。该值为“数字签名(80)”。 - Sisiutl
1个回答

4
这篇文章有些过时,但我希望它对某些人有所帮助。
首先,您需要检查您是否有该 .cer 文件的私钥。如果您打开它,您应该会看到一个钥匙图标,后面跟着这句话:

您有此证书的私钥

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接