4

我们从 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 CAThawte Code Signing CA - G2
  • 谷歌表示没有人收到错误找不到与密钥匹配的证书。
  • 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
4

1 回答 1

4

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

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

使用从浏览器的证书存储中导出的这个 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-08-16T21:20:42.440 回答