如何设置Windows窗体应用程序的发布者名称

我已经创建了Windows窗体应用程序的设置。 在Windows 7中安装此设置后,它显示如下内容:

Name: my application.exe Publisher: unknown publisher Type: application From: my application.exe 

我想设置发布者名称。 如何设置发布者名称?

您需要对输出代码进行数字签名。 我可以通过使用Authenticode签名和检查代码的文章开始。

这样做的全部目的是保证您的代码没有被篡改。 如果您从其中一个证书颁发机构购买代码签名证书 ,则可以阻止“您是否相信此”窗口出现。

这不是一个简单的设置任务,但它可以在脚本启动后立即执行。
你找不到一个简单,快速修复的答案。

这是最相关部分的剪切和粘贴。 您可能需要进一步阅读以获得您想要的内容。


MakeCert

使用MakeCert测试程序生成测试X.509证书 。 MakeCert执行以下任务:

  1. 为数字签名创建公钥/私钥对,并将其与您选择的名称相关联。
  2. 将密钥对与您选择的发布者名称相关联。
  3. 创建由测试根密钥或您指定的密钥签名的X.509证书 ,该证书将您的名称绑定到密钥对的公共部分。 证书将输出到文件,系统证书存储区或两者。

MakeCert Internet Explorer 3.02 UPD示例

以下是使用Microsoft Internet Explorer 3.02 UPD选项创建证书的示例:

 MakeCert -k:c:\KeyStore\MyKey.pvk -n:CN=MySoftwareCompany Cert.cer 

在此示例中,将创建名为Cert.cer的证书文件。 名为MyKey的密钥对的公共部分绑定到发布者MySoftwareCompany

Cert2SPC

生成证书后,可以使用Cert2SPC程序创建软件发布证书 。 该程序将多个X.509证书包装到PKCS#7签名数据对象中。 请注意,此程序仅用于测试目的。 从证书颁发机构获取有效的软件发布证书 。 这是一个例子:

 Cert2SPC MyCert.cer MyCert.spc 

这将X.509证书 MyCert.cer包装到名为MyCert.spcPKCS#7软件发布证书中

SignCode

最后一步是使用SignCode程序实际签名文件。 该计划将:

  1. 创建文件的加密摘要
  2. 使用您的私钥对摘要进行签名。
  3. X.509证书软件发布证书复制到新的PKCS#7签名数据对象中。 PKCS#7对象包含用于创建签名的证书的序列号和颁发者,证书以及签名的摘要信息。
  4. 将对象嵌入文件中。
  5. (可选)它可以为文件添加时间戳。 签名文件时应始终添加时间戳。 但是,SignCode还能够根据某些限制向以前签名的文件添加时间戳(请参阅选项表后面的示例)。

文件签名后(假设您拥有有效的证书)并加盖时间戳,该文件可以分发给您的客户。 请注意,使用测试程序MakeCert和Cert2SPC生成的证书对于将分发给公众的代码无效。 独立软件供应商必须从GTE,VeriSign Inc.或其他证书颁发机构获取证书,以签署将分发给公众的代码。

Internet Explorer 3.02 UPD的SignCode示例

以下是如何使用Microsoft Internet Explorer 3.02 UPD选项对文件进行签名和时间戳的两个示例。 第一个使用私钥名称MyKey ,第二个使用私钥文件My.pvk

 SignCode -prog MyControl.exe -spc Cert.spc -pvk MyKey -timeStamper http://timestamp.verisign.com/scripts/timstamp.dll SignCode -prog MyControl.exe -spc Cert.spc -pvk My.pvk -timeStamper http://timestamp.verisign.com/scripts/timstamp.dll 

注意在上面的URL中,timstamp.dll是正确的。 这不是印刷错误。

在这两种情况下,PKCS#7对象Cert.spc都嵌入到文件的摘要MyControl.exe中。 在第一个示例中,使用MyKey密钥对的私钥对摘要进行签名,并添加时间戳。 在第二个示例中,使用私钥文件My.pvk对摘要进行签名,并添加时间戳。