让我们解决这个问题......我:
使用 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的“从商店中选择”窗口中,所以没用。
我为此花了一天时间,准备放弃,但我不能。我需要做什么?