包签名和数字证书

Package signing , and digital certificate

我使用 c# 创建了一个 windows 表单应用程序,该应用程序的输出是 .exe,在该项目的引用中,我添加了该项目需要的许多 dll 的引用,所有这些都已创建通过me.But这些引用的dll,其中一些是使用第三方Dll。

我使用 wix 工具集将 .exe 和所有引用的 dll 打包到安装程序项目中。

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

我把这个.msi结果文件上传到内网服务器,但是当用户通过google chrome从内网下载它时,它给出了如图1的警告信息。Chrome warning

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

并且 运行 安装程序显示带有黄色横幅的用户帐户控制消息,如图 3 所示。[windows 智能屏幕警告][3]

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

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

我所需要的只是我不希望用户觉得他正在下载 运行 不可信的东西。

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

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

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