16

我有一个需要分发的应用程序并希望对其进行签名,这样我就可以避免 vista 中的 UAC 警告。目前我看到这个...

UAC http://img694.imageshack.us/img694/7289/uac.jpg

我正在使用 Visual Studio 创建安装程序,但该应用程序不是用 .net 编写的。我需要对 .msi 中包含的 .msi 和 .exe 都进行签名吗?我需要什么样的钥匙,我应该从哪里得到它?目前我正在考虑威瑞信,虽然它们很贵,但我需要这个值得信赖。拿到钥匙后如何签名?如果我不明白 al.exe 和 signtool.exe 是否适用于 .net 程序集,对吗?谢谢!

4

1 回答 1

13

这个特殊的对话是最可怕的。如果应用程序已签名但未会签,则有一个不那么可怕的问题。(即它仅由您签名)。要完全绕过它,您确实需要一个会签。

Windows 包含受信任的根证书颁发机构列表。(MMC.EXE > 添加管理单元 > 证书 > 计算机帐户)。其中一些用于“代码签名”,这意味着这些证书颁发机构可以对您的签名进行副签名。威瑞信在该列表中。如果您在公司互联网上工作,公司签名也可能/可以在那里。

无论如何,一旦您获得了会签证书,您确实可以使用 signtool 对您的应用程序及其安装程序进行签名。签署您自己的应用程序是一种很好的做法,并且对配置管理有很大帮助。Signtool 确实有一个 GUI,但也可以在 CLI 模式下使用。当您希望构建过程提示输入一次密钥然后将所有内容构建到安装程序时,后者很有用。(不要将公司证书的密码硬编码到构建过程中!)。

但正如我之前所说,您也可以使用非会签签名进行签名。这对于测试以及掌握整个过程和进行自动化构建非常有用。

于 2010-02-17T16:13:37.107 回答