创建一个密钥并用signtool签名可执行文件

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

SignTool.exe找不到证书。

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

OpenSSL和Visual Studio 2010 Express已安装。 运行Windows 7旗舰版x64。

从Windows驱动程序工具包使用SignTool.exe。


使用自签名证书对您的二进制文件进行数字签名几乎违背了将数字证书与程序一起使用的概念。 基本的想法是证明代码是由你创建的(真实性),并且自从发布它(完整性)以来未被修改过。 这必须通过使用由可信认证机构(CA)签署的签名证书来完成。

使用.Net,二进制数字签名时,它会在启动过程中自动进行完整性和真实性验证。 虽然我没有亲自测试过,但使用自签名证书可能会导致很多问题。

如果您想对您的程序进行数字签名,您需要投资CA的代码签名证书。 有许多公司可以提供这项服务(Verisign,Thawte),但需要收费。

虽然费用在价格上似乎有点极端,但请记住,您不仅仅是购买数字证书,还要全天候验证该证书。 任何时候有人开始你的程序,它都会确保程序是由你写的,并且程序自你发布以来一直没有改变。

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

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

链接地址: http://www.djcxy.com/p/67849.html

上一篇: creating a key and signing executable with signtool

下一篇: Get timestamp from Authenticode Signed files in .NET