我们从Thawte获得了新的证书(* .cer)文件,我完成了标准程序,允许它与代码签名一起使用。
如果我使用旧的(工作)证书:
将证书( .cer)转换为软件发布证书( .spc)
>Cert2Spc.exe Avatar.cer Avatar.spc
Succeeded
将我们的私钥文件(* .pvk)与SPC合并为一个PFX:
>pvk2pfx.exe -pvk Avatar.pvk -spc Avatar.spc -pfx Avatar.pfx -f
提示输入私钥密码,输入密码,单击“确定”
我们很高兴;准备好使用signtool
。
我们现在拥有新证书,我遵循相同的程序:
将证书( .cer)转换为软件发布证书( .spc)
>Cert2Spc.exe Avatar.cer Avatar.spc
Succeeded
将我们的私钥文件(* .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).
出了什么问题?
注意:
Thawte Code Signing CA
更改为 Thawte 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)
几乎可以肯定是红鲱鱼; Foxpro的?
在RSS屏幕保护示例(RssItem.cs
)
// "Element not found. (Exception from HRESULT: 0x80070490)"
几乎可以肯定是红鲱鱼; XML?
0x80070490
的十进制版本为-2147023728
答案 0 :(得分:4)
事实证明,今年我们获得了一个新的私钥。
嗯,你不是给私钥,证书+密钥是通过浏览器获取并存储在证书存储中的。从那里我们可以导出一个.PFX
(A pfx
包含证书和私钥)。
通过从浏览器的证书商店导出此PFX,我们可以直接使用它来使用signtool
对代码进行签名。
注意:我们实际上受到了惩罚,并且经历了一些步骤:
+--[.pfx]---+ +--[.cer]---+ +--[.spc]---+ +--[.pfx]---+
|Certificate|====>|Certificate|====>|Software |=========> |Certificate|
| + | +-----------+ |Publishing | | + |
|Private Key|==+ + |Certificate| +=====> |Private Key|
+-----------+ | +-----------+ | +-----------+
| |
| |
| +--[.pem]---+ +--[.pvk]---+ |
+=>|Private Key| ==> |Private Key|===+
+-----------+ +-----------+
但是所有这条路线都给了我们一个没有密码保护的私钥文件(*.pvk
);所以signtool
可以在没有用户互动的情况下运行。
但这个问题的答案是:私钥与证书不符。