【问题标题】:PVK2PFX Error 0x80070490 - Cannot find certificates that match the keyPVK2PFX 错误 0x80070490 - 找不到与密钥匹配的证书
【发布时间】:2011-10-27 14:55:24
【问题描述】:

我们从 Thawte 获得了新的证书 (*.cer) 文件,我通过了我们的标准程序以允许将其与代码签名一起使用。

如果我使用我们的旧(工作)证书:

  1. 将证书 (.cer) 转换为软件发布证书 (.spc)

    >Cert2Spc.exe Avatar.cer Avatar.spc
    Succeeded
    
  2. 将我们的私钥文件 (*.pvk) 与 SPC 组合成一个 PFX:

    >pvk2pfx.exe -pvk Avatar.pvk -spc Avatar.spc -pfx Avatar.pfx -f
    

    提示输入私钥文件密码,输入后点击确定

我们很高兴;准备使用signtool


我们现在有了我们的证书,我遵循相同的程序:

  1. 将证书 (.cer) 转换为软件发布证书 (.spc)

    >Cert2Spc.exe Avatar.cer Avatar.spc
    Succeeded
    
  2. 将我们的私钥文件 (*.pvk) 与 SPC 组合成一个 PFX:

    >pvk2pfx.exe -pvk Avatar.pvk -spc Avatar.spc -pfx Avatar.pfx -f
    

    提示输入私钥文件密码,输入后点击确定

    ERROR: Cannot find certificates that match the key.
    (Error Code = 0x80070490).
    

怎么了?


注意事项:

  • 十年来我们一直使用同一个私钥文件 (*.pvk)
  • 今年Thawte给了我们2年证书;而不是通常的 1 年
  • 今年 Thawte 将他们的签名证书从 Thawte Code Signing CA 更改为 Thawte Code Signing CA - G2
  • Google 表示 没有人 遇到过错误找不到与密钥匹配的证书。
  • Windows SDK 仅包含对错误代码0x80070490 的两个引用:

    • Visual Foxpro for Windows 头文件 (vfwmsgs.h):

      //
      // MessageId: E_PROP_ID_UNSUPPORTED
      //
      // MessageText:
      //
      // The specified property ID is not supported for the specified property set.%0
      //
      #define E_PROP_ID_UNSUPPORTED            ((HRESULT)0x80070490L)
      

      这几乎可以肯定是红鲱鱼;福克斯专业版?

    • 注释掉 RSS 屏幕保护程序示例中的代码 (RssItem.cs)

      // "Element not found. (Exception from HRESULT: 0x80070490)"
      

      也几乎可以肯定是红鲱鱼; XML?

  • 0x80070490 的十进制版本是-2147023728

【问题讨论】:

    标签: code-signing signtool


    【解决方案1】:

    原来今年我们获得了一个新的私钥。

    好吧,您没有给定私钥,证书+密钥是通过浏览器获取的并存储在证书存储中。从那里我们可以导出.PFXpfx 包含证书和私钥)。

    使用从浏览器的证书存储中导出的这个 PFX,我们可以直接使用它来使用signtool 对代码进行签名。

    注意:我们其实是贪吃惩罚的,经历过的步骤:

    +--[.pfx]---+     +--[.cer]---+     +--[.spc]---+           +--[.pfx]---+
    |Certificate|====>|Certificate|====>|Software   |=========> |Certificate|
    |    +      |     +-----------+     |Publishing |           |     +     |
    |Private Key|==+       +            |Certificate|   +=====> |Private Key|
    +-----------+  |                    +-----------+   |       +-----------+
                   |                                    | 
                   |                                    |
                   |  +--[.pem]---+     +--[.pvk]---+   |
                   +=>|Private Key| ==> |Private Key|===+
                      +-----------+     +-----------+
    

    但这条路线给我们的只是一个没有密码保护的私钥文件 (*.pvk);所以signtool 可以在没有用户交互的情况下运行。

    但这个问题的答案是:私钥与证书不匹配。

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 2021-02-10
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 2019-07-19
      相关资源
      最近更新 更多