我有一个 32 位 Windows 2003 系统,我在该系统上构建了 32 位和 64 位可执行文件。
现在我想为这些可执行文件添加代码签名。据我了解,这涉及购买 SSL 证书,并在我的系统上“安装证书”。这个对吗?因为我不明白为什么这种系统依赖性是必要的(或者它是什么关于需要“安装”的证书),而不是仅仅拥有一个工具来获取证书+可执行文件并对其进行签名。
无论如何,解决这个问题的最简单方法是什么,在 32 位系统上签署 64 位可执行文件时会遇到什么麻烦吗?
我有一个 32 位 Windows 2003 系统,我在该系统上构建了 32 位和 64 位可执行文件。
现在我想为这些可执行文件添加代码签名。据我了解,这涉及购买 SSL 证书,并在我的系统上“安装证书”。这个对吗?因为我不明白为什么这种系统依赖性是必要的(或者它是什么关于需要“安装”的证书),而不是仅仅拥有一个工具来获取证书+可执行文件并对其进行签名。
无论如何,解决这个问题的最简单方法是什么,在 32 位系统上签署 64 位可执行文件时会遇到什么麻烦吗?
我在我的博客文章中详细解释了如何解决这个问题你有一个新的 Verisign Authenticode 证书 - 现在怎么办?
购买代码签名证书。代码签名证书不同于 SSL 证书。您需要向认证机构提交文件以验证您自己或您的业务。
按照认证机构的说明在您的机器上安装证书。它可以是 32 位或 64 位。使用您用来提交证书请求以接收证书的同一浏览器。
从证书存储中导出证书。
使用 signtool 签署您的应用程序。您可以使用 32 位签名工具对 32 位和 64 位应用程序进行签名。
请记住为您的证书添加时间戳,否则当证书过期时,您的应用程序可能会采取不同的行动。
除了 Helge 的回答,我想指出,根据您要签名的二进制文件,您可能需要更新的操作系统和工具集。这主要适用于内核模式驱动程序,但在某些情况下也适用于用户模式代码(例如与 Windows 安全中心交互的代码)。