我有一个由.exe和.dll组成的应用程序,它们打包在一个使用Visual Studio中的InstallShield Limited Edition构建的setup.exe中。我想在Internet上分发应用程序,并尝试了解我在代码签名方面需要做些什么,以避免在下载和安装时从Windows发出警告消息。尽管VS提供了对文件进行签名的功能,但最好是从DigiCert,Comodo,Symantec等CA购买数字证书吗?我只需要签署setup.exe而不是2 .NET程序集吗?因为我注意到一旦安装完成,应用程序本身就会在没有警告的情况下运行(无论如何在Windows 8.1中) - 或者操作系统a / o浏览器足够智能,可以在下载或安装时查看程序集中的setup.exe文件?
答案 0 :(得分:0)
这里有两个问题
虽然VS提供了签名文件的能力,但最好是从DigiCert,Comodo,Symantec等CA购买数字证书吗?
如果您没有收到警告消息,目标计算机必须信任您用于签署程序的证书。这样做的两种方法是在受控环境(如Active Directory域)中,您可以在其中推出您在VS中使用的“私有CA”的证书,以签署您的应用程序或使用您知道目标计算机的证书我们已经相信DigiCert,Comodo,赛门铁克等。如果您将安装程序放在互联网上,则需要支付代码签名证书。
我只需要签署setup.exe而不是2 .NET程序集吗?
操作系统/浏览器不会“窥视”安装程序,只需要对安装程序本身进行签名,但是设置它的步骤也会签署设置中的文件。
来自Install Shield's website的有关为InstallShield 2012 Express Edition签名文件的说明:
为您的发布及其文件配置数字签名:
- 在“准备发布”下的“查看列表”中,单击“版本”。
- 在Builds资源管理器中,单击要签名的版本。
- 单击“签名”选项卡。
- 根据需要配置以下设置:
- 证书网址
- 数字证书文件
- 私钥文件 - 请注意,如果指定.pfx文件,则不需要指定.pvk文件。
- 证书密码
- 在“签名输出文件”设置中,指定哪些文件(Setup.exe,.msi包,这两个文件或这两个文件都不是) 想要签名。
- 在“在包中签名文件”设置中,指定是否要在安装中签署其他文件 如果选择是,请使用 “签名文件包”设置下的其他设置以指示 应该签署哪些文件和文件模式,哪些不应该签名 签。请注意,不应该是文件和文件模式 签名覆盖应签名的任何文件和文件模式。对于 例如,如果在“包括”设置和“排除”中指定* .exe 设置,InstallShield不会签署任何.exe文件。
醇>
这些说明适用于Express Edition,而非限量版。我找到了this Code Project page的名为“UltraDynamo”的东西,限量版的鞋子有一个类似的签名标签屏幕。