包签名和数字证书

时间:2016-02-29 15:23:00

标签: c# packages .net-assembly digital-signature code-signing

我使用c#创建了一个Windows窗体应用程序,该应用程序的输出是.exe,在这个项目的引用中,我添加了一个很多dll的引用,这个项目需要它们都是由我创建的。但是这些引用了dll,其中一些正在使用第三方Dll。

我使用wix Toolset在安装程序项目中打包了.exe和所有引用的dll。

请注意,.exe和安装程序没有强名称,也没有使用密钥签名。

我将此.msi结果文件上传到Intranet服务器,但当用户通过Google Chrome从Intranet下载时,会发出类似于图1的警告消息。Chrome warning

当用户在下载后双击.msi文件以开始安装过程时,它会激活Windows智能屏幕。Smart screen warning

在运行安装程序时,它会显示带有黄色横幅的用户帐户控制消息,如图3所示。[windows smart screen warning] [3]

我做了很多调查,我发现这是因为我的代码没有用数字证书进行数字签名,实际上我没有这方面的经验而且我不知道这是不是真的原因或者什么。

我是否需要通过.net的签名选项卡签署程序集来强烈签名.exe,我也没有唱过可执行程序包的经验。

我需要的是,我不希望用户感觉他正在下载和运行不受信任的东西。

如果原因是包需要数字证书,我是否必须使用强名称来装配程序集才能使用数字证书进行签名?

1 个答案:

答案 0 :(得分:0)

Windows会将经过验证的发布者发布的所有应用程序视为不受信任的应用程序。如果您希望通过Windows对您的应用程序进行数字签名,请对您的应用程序进

  1. 首先购买代码签名证书。让Godaddy说最便宜的(https://in.godaddy.com/web-security/code-signing-certificate)。购买证书后,只需按照godaddy上的程序获取您的证书(.pfx)文件。
  2. 安装visual studio express
  3. 安装InstallShield以生成.exe
  4. 您可以使用installshield轻松地使用证书对输出进行签名。有关详细信息,请参阅屏幕截图。enter image description here