4

我将如何签署 Visual C# 可执行文件?

SignTool.exe 找不到证书。

我将如何创建自签名密钥和证书,并让 signtool 能够查看并使用证书?

已安装 OpenSSL 和 Visual Studio 2010 Express。运行 Windows 7 Ultimate x64。

使用 Windows Driver Kit 中的 SignTool.exe。

4

1 回答 1

9

使用自签名证书对二进制文件进行数字签名几乎违背了在程序中使用数字证书的概念。基本思想是证明代码是由您创建的(真实性)并且自您发布以来没有被修改(完整性)。这必须通过使用由受信任的证书颁发机构 (CA) 签名的签名证书来完成。

使用 .Net,当二进制文件经过数字签名时,会在启动期间自动验证其完整性和真实性。虽然我没有亲自测试过,但使用自签名证书可能会给您带来很多问题。

如果您想对您的程序进行数字签名,则需要购买来自 CA 的代码签名证书。有许多公司可以提供这项服务(VerisignThawte),但需要付费。

虽然费用可能看起来有点极端,但请记住,您不仅购买数字证书,还购买该证书的 24/7 验证。任何时候有人启动您的程序,它都会确保该程序是您编写的,并且该程序自您发布以来没有更改。

获得证书后,您可以按照如何:签署应用程序和部署清单中的步骤对您的程序进行数字签名。

更新:如果这个程序是严格的内部应用程序(仅限于您或您的企业),您可以创建自己的CA。由于您将是唯一运行它的人,因此只有您需要验证它。CA 证书需要作为受信任的根证书安装在所有将运行该程序的机器上(或者如果您有权访问 Windows Server,则可以设置一个真正的工作 CA)。

于 2010-11-07T06:07:58.717 回答