【问题标题】:Cannot import the following key file error when importing pfx导入pfx时无法导入以下密钥文件错误
【发布时间】:2013-02-23 10:22:35
【问题描述】:

我在 stackoverflow 上彻底研究了这个问题,我看到了很多答案,但没有一个对我们有用。我们最近从 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 签名并只是尝试签署程序集。

【问题讨论】:

  • 嘿拉吉。感谢您的回复,我尝试了所有这些解决方法,但均未成功。
  • 当你尝试“sn -i [comodo].pfx VS_KEY_xxxxxxxxxxxxx”方法时,你得到帮助信息了吗?我做了,但没有成功,但是如果我以管理员身份运行“开发人员命令提示符”,它会要求我输入密码并且成功了。

标签: code-signing pfx


【解决方案1】:
  1. 导航到项目属性 --> 签名
  2. 请从下拉列表中选择对应的 *.pfx 文件。
  3. 输入以前用于代码签名的密码。 (密码:询问已签署程序集并创建自签名证书和代码签名的人)
  4. (可选)它会自动将您的证书添加为受信任的。它可以 使用管理控制台窗口可以看到(运行 MMC 命令并添加 证书添加快照以查看证书)

【讨论】:

    【解决方案2】:

    我有同样的问题。我正在许多计算机上从拇指驱动器构建应用程序,我相信这就是原因。

    我发现“sn -i [comodo].pfx VS_KEY_xxxxxxxxxxxxx”方法成功了。 我做了以下步骤:

    1. 以管理员身份运行“开发人员命令提示符”(在开始->所有程序->Visual Studio->工具中找到)
    2. 导航到您的密钥目录(对我来说,这是我的项目目录的根目录,而不是解决方案目录)
    3. 执行“sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx”(mykey.pfx 和 VS_KEY_xxxxxxxxxxxxx 都在构建错误消息中)
    4. 如果需要,请输入密码

    当我在没有以管理员身份运行“开发人员命令提示符”的情况下尝试此操作时,在运行“sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx”时得到帮助显示文本,但它不起作用。诀窍是确保我以管理员身份运行开发提示。

    对于上下文,我使用的是 VS Community 2013.5、Window 7 x64 Professional 和 NET Framework 4.7

    【讨论】:

      【解决方案3】:

      我了解到 Visual Studio 似乎不能很好地处理从属证书。
      我在多台机器(不同的 OS/VS 组合)上尝试了几个证书,结果相同。
      我最终发现这是解决方法:

      Visual Studio 的问题似乎在于它不喜欢证书链接。这可以通过在没有链接的情况下导入/导出证书来解决。下一个问题由using the certutil and export with the AT_SIGNATURE 解决。我能够将它导入 VS 并构建,但它似乎没有签署程序集。

      【讨论】:

      • 这是唯一能始终如一地工作的方法:social.msdn.microsoft.com/Forums/windows/en-US/…
      • 谢谢。我的内容更广泛一些,并结合了此处排名第二的答案:stackoverflow.com/questions/1351830/…。我添加了以下内容作为构建后事件:call "$(DevEnvDir)..\Tools\vsvars32.bat"signtool sign /f "$(SolutionDir)keyfile.pfx" /p password /v "$(ProjectDir)$(OutDir)$(TargetFileName)。我的密钥文件是解决方案的基础,被多个项目引用。 OutDir 宏会根据活动配置更改为 debugrelease 文件夹。
      • 正如其他人所说,我能够正常安装 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 解决了这个问题。

            【讨论】:

              猜你喜欢
              • 2019-12-19
              • 2021-02-04
              • 2015-07-21
              • 2013-02-12
              • 1970-01-01
              • 2017-03-23
              • 2013-04-22
              • 2021-06-23
              • 2018-10-08
              相关资源
              最近更新 更多