在32位Windows上如何对64位可执行文件进行代码签名?

3
我有一个32位的Windows 2003系统,我在上面构建32位和64位的可执行文件。
现在我想为这些可执行文件添加代码签名。据我所知,这涉及购买SSL证书,并在我的系统上“安装证书”。这是正确的吗?因为我不理解为什么需要这种系统依赖性(或者说为什么需要“安装”证书),而不是只需一个工具即可用证书 + 可执行文件进行签名。
无论如何,最简单的方法是什么?在32位系统上签名64位可执行文件时会遇到什么问题吗?

使用makecert工具。在Google上搜索它。您可以创建免费证书。 - anishsane
@anishane:谢谢,但这些免费证书被其他人认可和接受吗?我需要这个代码签名来避免“此可执行文件来自未知/不受信任的供应商”弹出警告。 - Jace
嗯..确实如此。我被“在我的系统上安装证书”这个想法冲昏了头。 - anishsane
3个回答

1

谢谢,我会研究一下!您有什么想法,为什么这些证书需要在系统范围内“安装”,而不是仅由signtool用于签署可执行文件? - Jace
证书仅需用于签名,无需安装。查看文章(底部)获取 signtool 命令行用于对可执行文件进行签名。 - Helge Klein
一个权利,这解释了很多,谢谢。我正在购买证书的过程中,但首先我想先用自签名证书进行测试。我找到了(并遵循了)几个教程和说明,但似乎没有什么作用。即使在“成功”签署我的exe之后(根据signtool),未受信任的供应商警告仍然弹出。您是否知道任何详细解释此问题的指南?(我假设问题在于安装自签名证书以使我的测试系统信任它,但不知道我做错了什么) - Jace

0

购买代码签名证书。代码签名证书与SSL证书不同。您需要提交文件以验证自己或您的业务到认证机构。

按照认证机构的说明在您的计算机上安装证书。它可以是32位或64位。使用您用于提交证书请求的相同浏览器接收证书。

从证书存储中导出证书。

使用signtool签署您的应用程序。您可以使用32位signtool签署32位和64位应用程序。

记得为您的证书加上时间戳,否则当证书过期时,您的应用程序可能会表现不同。


0
除了Helge的回答之外,我想指出,根据您正在签名的二进制文件,您可能需要更现代的操作系统和工具集。这主要适用于内核模式驱动程序,但在某些情况下也适用于用户模式代码(例如与Windows安全中心进行交互的代码)。

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