使用signtool签署CAB文件不再工作(签名者的证书对签名无效)

时间:2012-11-24 11:00:27

标签: windows-7 certificate command-prompt signing signtool

几个月前,我已经能够使用我在服务器上创建的测试证书成功签署CAB文件。以下是我采取的步骤:

makecert.exe -sv“Demo.pvk”-n“CN = Demo Company,E = demo @ gmail.com”“Demo.cer”

cert2spc.exe“Demo.cer”“Demo.spc”

pvk2pfx.exe -pvk“Demo.pvk”-pi“pvk_password”-spc“Demo.spc”-pfx“Demo.pfx”-po“pfx_password”

signtool.exe sign / f“Demo.pfx”/ p“pfx_password”/ v“D:\ Setup.cab”

所有步骤都是成功的,除了最后一个带有signtool的步骤:“签名者的证书对签名无效”。 我已经在网上完成了关于这个错误的研究,但没有任何实际上解决了我的问题。通常会创建此错误,因为pfx已过期,但这不是这种情况。我已成功将证书导入本地证书库并检查其有效性。

为什么即使我重新创建它,我也无法用我的pfx签署CAB? 是否有一些Windows更新负责此更改?

我愿意接受使用命令提示符以任何其他方式使用pfx签署CAB的建议。

2 个答案:

答案 0 :(得分:4)

我已经设法破解了这个坚果,并通过测试证书签署了CAB。

首先,我通过添加代表自签名的-r参数来更改makecert调用:

makecert.exe -sv "Demo.pvk" -n "CN=Gregor Primar SP,E=gprimar@gmail.com" "Demo.cer" -r

下一步是使用makecert而不是pvk2pfx创建pfx:

makecert -sk GpSolutionsKey -iv "Demo.pvk" -n "CN=Gregor Primar SP" -ic "Demo.cer" -sr currentuser -ss my -sky signature -pe

这也将pfx导入用户证书存储区(-sr currentuser)。

然后我打开了mmc并添加了Certificates snap-inn(我的用户帐户)。选择个人证书并导出到光盘。

最后一步是使用以下命令进行签名:

signtool.exe sign /f "Demo.pfx" /p "pfx_password" /v "d:\Setup.cab"

使用Demo.pfx成功签署了Setup.cab!

答案 1 :(得分:0)

您的密钥公共大小几乎可能小于2048位(默认使用长度= 1024无法签名),2048位是O.S所需的最小大小。要进行签名过程,您可以在运行 certmgr 命令行中检查此值,转到包含最近创建的证书的文件夹,双击证书,转到详细信息选项卡并验证关键的公众规模大于或等于2048

如果大小小于2048,你应该再次生成将标志-len = 2048(或grather)添加到makevert命令,还包括-r标志

makecert -sv "mycertif.pvk" -n "CN=Totem Company" -len 2048 mycertif.cer -r

迟到,使用signtool来应用符号

适合我,祝你好运