我已经为 Windows 制作了一个应用程序,每次通过打开可执行文件运行该应用程序时,我都会在 Windows 中收到“Publisher Unverified”警告。如果我是这个应用程序的唯一受众,那很好,但事实并非如此。有什么方法可以对我的应用程序进行编程,以使该消息不会显示给用户。
3 回答
做到这一点的唯一方法是从受信任的来源获取和使用代码签名证书。Microsoft 将此称为Authenticode。
不幸的是,对于这个小家伙来说,这些成本。威瑞信每年以大约四英镑的价格出售他们的产品。
以下是您应该阅读有关 Authenticode 的一些起点:
http://msdn.microsoft.com/en-us/library/ms537359(VS.85).aspx
http://technet.microsoft.com/en-us/library/cc750035.aspx
http://msdn.microsoft .com/en-us/library/aa379872(VS.85).aspx
部分证书经销商:
http://www.verisign.com
http://www.thawte.com
http://www.globalsign.net
http://www.geotrust.com
对于更便宜的代码签名证书,您可以使用 Comodo。有一个名为 KSoftware 的经销商以 99 美元/年的价格出售他们的证书:
http://www.ksoftware.net/code_signing.html
几年前我用过它们,没有任何问题。
然后,您可以使用 .net SDK 中的 SignTool 对您的 EXE 文件进行签名。这里有一个教程:
我认为有办法解决这个问题。我们需要为可执行文件添加数字签名。添加数字签名的方法在以下位置进行了很好的概述,
- http://blog.didierstevens.com/2008/12/30/howto-make-your-own-cert-with-openssl/
- http://blog.didierstevens.com/2008/12/31/howto-add-a-digital-signature-to-executables/
基本上,我们将使用 OpenSSL 创建我们自己的数字签名,然后使用 Microsoft 的 SignTool 应用程序将其添加到我们的可执行文件中。