几个月前一个能够成功签订,我有我的服务器上创建的测试证书的CAB文件。 下面是我所采取的步骤:
makecert.exe -sv “Demo.pvk” -n “CN =演示公司,E =演示@ 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符号/ F “Demo.pfx”/ P “pfx_password”/ v的 “d:\ Setup.cab”
所有步骤,除了最后一个与signtool返回全成:“签名者的证书是无效的签名”。 我已经做网络研究这个错误,但什么也actualy解决我的问题。 被usualy创建此错误的原因PFX已过期,但这里不是这种情况。 我已经成功导入证书,本地证书存储,并检查它的有效性。
为什么我无法登录我的PFX CAB任何更多的,即使我重新呢? 有一些Windows更新负责这种变化?
我愿意为任何其他方式签署与使用命令提示符PFX CAB建议。
我已成功地破解这个螺母和试验证书签名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并添加证书管理单元客栈(我的用户帐户)。 选择个人证书,并出口到光盘上。
最后一步是使用下面的命令签名:
signtool.exe sign /f "Demo.pfx" /p "pfx_password" /v "d:\Setup.cab"
而Setup.cab成功与Demo.pfx签!
几乎可能是你的主要的公共大小小于2048位(默认情况下使用长度= 1024无法签约),2048位是OS将能够签署过程所需的最小尺寸,你可以检查这个值运行certmgr命令行,转到文件夹包含您刚创建的证书,双击您的证书,就到细节选项卡,并确认主要的公共大小greather或大于等于2048
如果尺寸小于2048你shouldBe这样再次生成添加-len = 2048(或grather)至makevert命令,也我包括-r标志旗
makecert -sv "mycertif.pvk" -n "CN=Totem Company" -len 2048 mycertif.cer -r
后期,使用signtool申请标志
作品对我来说,好运气
文章来源: Signing CAB file with signtool not working any more (The signer's certificate is not valid for signing)