导入pfx时无法导入以下密钥文件错误
Posted
技术标签:
【中文标题】导入pfx时无法导入以下密钥文件错误【英文标题】:Cannot import the following key file error when importing pfx 【发布时间】:2013-02-23 10:22:35 【问题描述】:我在 *** 上彻底研究了这个问题,我看到了很多答案,但没有一个对我们有用。我们最近从 comodo 购买了一个代码签名证书,我们将用它来签署我们的 c# WPF .net4 应用程序。 我们已按照following URL 上的说明进行操作
然后在 Visual Studio 中的“项目属性->唱歌->签署程序集”下导入证书。然后我们尝试构建项目并得到以下错误:
无法导入以下密钥文件:comodo.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书,手动将证书安装到具有以下密钥容器名称的强名称 CSP:VS_KEY_xxxxxxxxxxxxxxx。
我们在互联网上找到了许多解决方案,并尝试了以下方法:
点击更改密码并在所有 3 个地方使用相同的密码 sn -i [comodo].pfx VS_KEY_xxxxxxxxxxxxx 尝试将其转换为无密码 snk 文件并使用该文件代替 .pfx 尝试以管理员身份运行 Visual Studio 并导入密钥 尝试创建非常简单的准系统项目并与之签约 尝试了 Visual Studio 2010 和 2012 我们尝试将以下内容添加到程序集中 [assembly: AssemblyKeyFile("path to key file")] 在 postbuild "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" 中添加了事件 sign /f "$(ProjectDir)[keyfile].pfx" /p [thepassword ] /v "$(ProjectDir)obj\Release\$(TargetFileName)"在 .csproj 文件的一个部分中添加:
已下载http://visualstudiogallery.msdn.microsoft.com/a83505c6-77b3-44a6-b53b-73d77cba84c8 并在错误处单击“应用修复”
到目前为止,我们还没有成功。我们可以使用密码很好地导入密钥,这样我们就知道密码是正确的。我们也知道这对于在 clickonce 发布中签署清单非常有效。只是为了确保我们没有任何其他问题,我们关闭了 cilckonce 签名并只是尝试签署程序集。
【问题讨论】:
有一些解决方法,connect.microsoft.com/VisualStudio/feedback/details/524792/… 嘿拉吉。感谢您的回复,我尝试了所有这些解决方法,但均未成功。 当你尝试“sn -i [comodo].pfx VS_KEY_xxxxxxxxxxxxx”方法时,你得到帮助信息了吗?我做了,但没有成功,但是如果我以管理员身份运行“开发人员命令提示符”,它会要求我输入密码并且成功了。 【参考方案1】:-
导航到项目属性 --> 签名
请从下拉列表中选择对应的 *.pfx 文件。
输入以前用于代码签名的密码。 (密码:询问已签署程序集并创建自签名证书和代码签名的人)
(可选)它会自动将您的证书添加为受信任的。它可以
使用管理控制台窗口可以看到(运行 MMC 命令并添加
证书添加快照以查看证书)
【讨论】:
【参考方案2】:我有同样的问题。我正在许多计算机上从拇指驱动器构建应用程序,我相信这就是原因。
我发现“sn -i [comodo].pfx VS_KEY_xxxxxxxxxxxxx”方法成功了。 我做了以下步骤:
-
以管理员身份运行“开发人员命令提示符”(在开始->所有程序->Visual Studio->工具中找到)
导航到您的密钥目录(对我来说,这是我的项目目录的根目录,而不是解决方案目录)
执行“sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx”(mykey.pfx 和 VS_KEY_xxxxxxxxxxxxx 都在构建错误消息中)
如果需要,请输入密码
当我在没有以管理员身份运行“开发人员命令提示符”的情况下尝试此操作时,在运行“sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx”时得到帮助显示文本,但它不起作用。诀窍是确保我以管理员身份运行开发提示。
对于上下文,我使用的是 VS Community 2013.5、Window 7 x64 Professional 和 NET Framework 4.7
【讨论】:
【参考方案3】:我了解到 Visual Studio 似乎不能很好地处理从属证书。我在多台机器(不同的 OS/VS 组合)上尝试了几个证书,结果相同。我最终发现这是解决方法:
使用
签署程序集signtool sign /f "[path to pfx]" /p [password] /v "[path to assembly]"
使用 mageUI 构建您的安装程序(请参阅“Manually Deploying a ClickOnce Application”)
Visual Studio 的问题似乎在于它不喜欢证书链接。这可以通过在没有链接的情况下导入/导出证书来解决。下一个问题由using the certutil and export with the AT_SIGNATURE 解决。我能够将它导入 VS 并构建,但它似乎没有签署程序集。
【讨论】:
这是唯一能始终如一地工作的方法:social.msdn.microsoft.com/Forums/windows/en-US/… 谢谢。我的内容更广泛一些,并结合了此处排名第二的答案:***.com/questions/1351830/…。我添加了以下内容作为构建后事件:call "$(DevEnvDir)..\Tools\vsvars32.bat"
和 signtool sign /f "$(SolutionDir)keyfile.pfx" /p password /v "$(ProjectDir)$(OutDir)$(TargetFileName)
。我的密钥文件是解决方案的基础,被多个项目引用。 OutDir
宏会根据活动配置更改为 debug
或 release
文件夹。
正如其他人所说,我能够正常安装 Authenticode 证书。出于某种原因,Visual Studio 无法在项目属性选项卡中使用链式证书。
导入证书然后使用 mmc 导出,删除包含所有证书复选框允许 VS2015 社区版在我的情况下使用证书【参考方案4】:
对我来说,以下工作, 首先通过双击安装证书。那么,
项目属性 -> 签名 -> 如果选中“签署 ClickOnce 清单” -> 单击“从文件中选择”并选择 .pfx 文件,它应该显示所有证书有效详细信息,例如颁发给、颁发者、预期目的等
【讨论】:
【参考方案5】:另一个“为我工作”...
在 Windows 资源管理器中右键单击 PFX,选择“安装 PFX”并在向导中提供密码。然后在VS的项目属性中,在“签名”下选择“更改密码”并重新输入密码。在此之前,只有以管理员身份运行 VS 才能工作。
【讨论】:
【参考方案6】:我能想到的最佳解决方案是转到项目 --> 属性 --> 选择一个强名称密钥文件下拉菜单并选择“新建” --> 创建密钥,然后转到顶部的证书部分 --> 单击从文件中选择并选择您创建的新密钥 --> 构建解决方案 --> 发布。
【讨论】:
【参考方案7】:您只需打开“Project > Property > Signing”并取消选中“Sign the ClickOnce manifests” " 复选框。
【讨论】:
做到了。然后清洗溶液。建造它。仍然得到相同的 2 个错误;与原始错误相同。【参考方案8】:我遇到了类似的错误。通过从 Windows 资源管理器的上下文菜单中选择 Install PFX 解决了这个问题。
【讨论】:
以上是关于导入pfx时无法导入以下密钥文件错误的主要内容,如果未能解决你的问题,请参考以下文章