申请签署/验证

时间:2011-03-12 03:54:12

标签: c# windows visual-studio-2010 manifest code-signing

我对Windows开发相对较新,但刚刚完成了一个小项目。我想让我的应用程序“验证”像许多其他应用程序一样。例如,当您启动应用程序并弹出UAC时,它将没有带有黄色条的“发布者未知”消息,并且应该有一个“验证者:”部分。

我希望我能正确解释。有谁知道如何做到这一点?我希望它不像你需要付钱的SSL证书......

如果我的问题不清楚,或者我没有以正确的方式解释,请随时告诉我。谢谢!

4 个答案:

答案 0 :(得分:17)

不幸的是,是的,你需要付钱。

您需要的是代码签名证书。您可以从以下证书颁发机构获取它们: Thawte

VeriSign

或者,如果你正在寻找一个便宜的,我会从这里买一个,这是我得到的地方: Tucows

获得证书后,您可以将其集成到构建过程中以对您的应用程序进行签名,并将显示您的名称作为发布者。

答案 1 :(得分:6)

这称为code signing。如果您只想为自己生成自己的证书,可以按照this answer中的说明进行操作。

正如伊顿建议的那样,如果你想要一个公共用途,你必须付钱。我最近从http://www.instantssl.com/code-signing/index.html购买了一个用于BuildMaster软件的软件,为期2年,价格约为340美元。

对评论的回应:

  

如果我创建了自己的证书,它对我有用,但对其他人(公开)却没有用?

链接答案中的步骤1和2创建自签名证书颁发机构(CA),然后将其添加到Windows证书存储区。然后,步骤3生成代码签名证书并指定颁发CA(-ic开关)。由于颁发者是在步骤1中创建的CA,然后设置为在步骤2中由您手动信任,因此步骤3中生成的代码签名证书似乎由您计算机上的受信任方签名

公众无法信任它,因为您都生成了代码签名证书用于验证其创建者实际上是他所说的人的权限。想象一下,如果你是邪恶的,并在代码签名证书中加上假信息,说签名者是Microsoft.com而不是Aaron!如果没有可信任的权限来验证签名者的实际身份,那么所有证书都将无用。

当您从受信任的CA订购证书时,他们将以某种方式验证您的身份。他们可能会要求您提供驾驶执照的扫描副本,如果它是作为您的姓名签名,或者只有企业所有者会喜欢这些条款(我们使用我们的D& B DUNS编号来验证Inedo)。

一旦他们验证了您或您公司的身份,他们就会向您发送一个受典型网络浏览器信任的证书,您可以用它来签署您的可执行文件,公众可以放心,实际上您正在签署这些证书,因为CA无论你从哪个公司购买证书。如果查看您喜欢的Web浏览器的“选项”部分,您可以看到哪些CA被视为可信任。

答案 2 :(得分:1)

除了购买的证书,@ Eaton解释并自行创建自签名证书@John Rasch建议

您可以尝试免费的基于 comunitee的http://cacert.org 证书,这些证书与pgp / gpg-s trustsystem类似。对于代码签名,您需要至少100分的信任简历。

德国用户还可以使用免费的http://web.de证书,这些证书也允许进行代码签名。

这种方法(以及自行创建的证书)的缺点是,只有执行客户端的操作系统安装了99%的签名代理的根证书才能激活“已验证”。情况下。

然而,Firefox知道cacert.org,因此来自cacert的证书可以用于https,java和silverlight,但不能用于标准msie而不安装根证书。

答案 3 :(得分:0)

你也可以从StartCom(www.startssl.com)购买代码签名证书两年约49.90美元 - 比Thawte,Verisign和其他公司便宜很多。