使用signtool创建密钥和签署可执行文件

Kev*_*vin 4 signing code-signing code-signing-certificate signtool

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

SignTool.exe找不到证书.

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

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

使用Windows Driver Kit中的SignTool.exe.

jve*_*zey 9

使用自签名证书对二进制文件进行数字签名几乎违背了将数字证书与程序一起使用概念.基本思想是证明代码是由您创建的(真实性),并且自您发布以来未完全修改(完整性).必须使用由受信任的证书颁发机构(CA)签名的签名证书来完成此操作.

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

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

虽然费用可能看起来有点极端,但请记住,您不仅要购买数字证书,还要对该证书进行全天候验证.每当有人启动你的程序时,它将确保程序是由你编写的,并且程序自你发布以来没有被更改过.

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

更新:如果该程序是严格意义上的内部应用程序(仅限于您或您的企业),你可以创建自己的CA.既然你是唯一一个运行它的人,那么你只需要验证它.需要在运行该程序的所有计算机上将CA证书安装为受信任的根证书(或者如果您有权访问Windows Server,则可以设置实际的CA).