我如何签署一个可视化的C#可执行文件?
SignTool.exe找不到证书。
如何创建自签名密钥和证书,并让signtool能够查看和使用证书?
已安装OpenSSL和Visual Studio2010学习版。运行Windows7旗舰版x64。
使用Windows Driver Kit中的SignTool.exe。
发布于 2010-11-07 06:07:59
使用自签名证书对二进制文件进行数字签名几乎与程序的concept of using digital certificates背道而驰。基本思想是证明代码是由您创建的(真实性),并且在您发布它之后没有被修改过(完整性)。这必须通过使用由受信任的证书颁发机构(CA)签名的签名证书来完成。
使用.Net时,当二进制文件经过数字签名后,将在启动期间对其完整性和真实性进行automatically验证。虽然我没有亲自测试过这一点,但使用自签名证书可能会给您带来很多问题。
如果您想对程序进行数字签名,则需要购买来自CA的代码签名证书。有许多公司可以提供这项服务(Verisign,Thawte),但需要付费。
虽然费用可能在价格上看起来有点极端,但请记住,您购买的不仅仅是数字证书,还包括该证书的全天候验证。任何时候,当有人启动你的程序时,它将确保程序是你写的,并且程序在你发布后没有改变过。
一旦有了证书,就可以按照How to: Sign Application and Deployment Manifests中的步骤对程序进行数字签名。
更新:如果此程序是严格意义上的内部应用程序(仅限于您或您的企业),则为you can created your own CA。因为您是唯一运行它的人,所以只有您需要验证它。CA证书需要作为Trusted Root Certificate安装在将运行该程序的所有计算机上(或者,如果您有权访问Windows Server,则可以设置一个真正有效的CA)。
https://stackoverflow.com/questions/4116639
复制相似问题