【发布时间】:2012-11-29 00:12:09
【问题描述】:
让我们解决这个问题...我:
使用 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
现在,文章 Support Certificates In Your Applications With The .NET Framework 2.0 说:
对于桌面应用程序,您通常将证书安装在 用户商店。
所以当我查看用户存储(通过带有证书管理单元的MMC)时,我看到了:
红线所在的位置是 OLD/INVALID 证书。另外一个还没有过期,上面有我的用户名(2013-06-20)。
当我从商店中选择时,我看到了这个:
如果您好奇,另一个直观的放置其中之一的位置如下所示:
那么如何在旧的/坏的位置添加另一个?
这是我尝试过的:
在these instructions之后,我执行了
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的“从商店中选择”窗口中,所以没用。
我为此花了一天时间准备放弃,但我不能。我需要做什么?
【问题讨论】:
标签: visual-studio certificate clickonce self-signed