9

让我们解决这个问题......我:

  • 使用 Visual Studio 2012

  • 开发VB.NET应用程序 - 主要是 .NET 框架 3.5,一些是 2.0。

  • 使用 Windows 7 进行开发(用户也在使用 Windows 7。内部用户数量很少(少于 40)。

我还要声明我是新手,并不完全理解这个过程。我确实了解加密/散列/密钥等的基本概念,但我无法告诉您为什么您可能需要.cer文件而不是.pfx文件。

接着...

我们有一个应用程序使用证书来签署它的清单,该清单已经工作了三年(左右)。我们最近从 Visual Studio 2008 升级到 Visual Studio 2012,基本上跳过了 Visual Studio 2010。在该过程中的某个地方,证书现在无效或损坏。

makecert.exe建议的解决方案:用“就像我们上次一样”制作一个新的。当我们只需要我们自己的一小部分用户和看不到“你信任这个发布者吗?”的小便利时,为证书付费是没有意义的。消息(我认为?)。

尝试发布时,确切的错误是:

无法发布,因为项目未能构建。

签名时出错:无法签署 bin\Release\app.publish\setup.exe。SignTool 错误:签名者的证书对签名无效。SignTool 错误:尝试签名时出错:bin\Release\app.publish\setup.exe

现在,使用 .NET Framework 2.0 在您的应用程序中支持证书一文说:

对于桌面应用程序,您通常在用户存储中安装证书。

因此,当我查看用户存储(通过带有证书管理单元的MMC)时,我看到:

在此处输入图像描述

红线所在的地方是 OLD/INVALID 证书。另外一个还没有过期,上面有我的用户名(2013-06-20)。

当我从商店中选择时,我看到了这个:

在此处输入图像描述

在此处输入图像描述

如果您好奇,另一个直观的放置其中之一的位置如下所示:

在此处输入图像描述

那么如何在旧/坏的地方添加另一个呢?

这是我尝试过的:

按照这些说明,我执行了

makecert -n "CN=TempCA" -r -sv TempCA.pvk TempCA.cer

现在我有一个.pvk文件和一个.cer文件。然后我按照Pvk2Pfx (Windows Drivers)中的说明运行

pvk2pfx.exe -pvk TempCA.pvk -spc TempCA.cer -pfx TempCA.pfx

现在我有一个.pfx文件...(这是我需要的吗?),但是当尝试使用 MMC 导入证书存储时,我使用的密码无论如何都应该是错误的 - 即使我复制并粘贴它。(这听起来像是导入程序中的一个错误......我可以重现这个。)

尝试另一种方法,导入.cer文件后,它不会出现在Visual Studio的“从商店中选择”窗口中,所以没用。

我为此花了一天时间,准备放弃,但我不能。我需要做什么?

4

2 回答 2

7

文章Using Makecert to Create Certificates for Development帮助了大约 90% 的工作...

剩下的就是理解我可以做两件事之一(这两个选项都要求证书必须位于“受信任的根”区域,如“受信任的根证书颁发机构”,或者必须由那里的一个签名):

  1. 在 Visual Studio 中,在“签名”选项卡下,我可以使用“从文件中选择”并使用该.cer文件。
  2. 如果我只是将我的.cer文件放在“个人”文件夹中,它将作为“从商店选择”按钮中的一个选项出现(我可能需要重新启动计算机或 Visual Studio)。
于 2012-11-29T19:38:30.257 回答
2

Watki02 的回答很有帮助,但缺少一些细节。此外,该博客文章中的关键信息也应在此处发布。所以...

  1. 创建您自己的根授权证书:

    CD \path\to\whereyouwant

    makecert -n "CN=Make Up A Name" -a sha1 -r -sv MakeUpANameCertificateAuthority.pvk MakeUpANameCertificateAuthority.cer -ss MakeUpANameCertificateAuthority -sr localMachine

  2. 密码提示 系统将提示您创建密码,然后提交密码。我对两个提示都使用了相同的密码

  3. 用户证书

    makecert -pe -n "CN=CN=Make Up A Name User" -ss MY -a sha1 -iv MakeUpANameCertificateAuthority.pvk -ic MakeUpANameCertificateAuthority.cer -sv MakeUpAName.pvk MakeUpAName.cer

  4. 再次提示密码 我再次使用了与上面相同的密码

制作可移植文件以供交换

pvk2pfx -pvk "MakeUpAName.pvk" -spc "MakeUpAName.cer" -pfx "MakeUpAName.pfx" -pi SamePasswordAgain
  1. 将文件发送给您的私人客户

    “MakeUpAName.pfx”

  2. 安装证书

c:>MMC.EXE

菜单文件 -> 添加/删除管理单元

证书 -> 添加 -> 计算机帐户 -> 完成 -> 确定

菜单操作->所有任务->导入

通过向导

选择 *.pfx 格式

选择文件

继续使用默认选项

于 2016-12-12T13:06:11.890 回答