签名APPX文件遇SignTool错误0x80080209,求解决方法
解决SignTool Error 0x80080209(SIP_SUBJECTINFO缺失必要数据)
我之前踩过这个一模一样的坑!结合你给出的证书生成命令,这个错误大概率是证书属性不符合APPX签名要求,或者SignTool签名时没指定正确的摘要算法。给你一步步解决:
1. 重新生成符合APPX要求的自签名证书
你的MakeCert命令少了一个关键的增强密钥用法(EKU)——APPX包签名专用的EKU,只加代码签名是不够的。修改后的MakeCert命令需要包含两个EKU:
MakeCert /n "CN=Your Publisher Name" /r /h 0 /eku 1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13 /pe /sv MyKey.pvk MyKey.cer
解释下新增的参数:
1.3.6.1.4.1.311.10.3.13:这是Windows应用商店包签名的专用EKU,必须加上才能让证书被APPX签名机制认可。
之后重新用Pvk2Pfx转成PFX文件,建议加上/po参数统一密码(和PVK密码一致即可):
Pvk2Pfx /pvk MyKey.pvk /pi 123456 /spc MyKey.cer /pfx MyKey.pfx /po 123456
2. 用正确的SignTool命令签名APPX
很多人会忽略APPX的硬性要求:必须使用SHA256摘要算法,默认的SHA1会触发这个错误。确保你的SignTool命令加上/fd SHA256参数:
signtool sign /fd SHA256 /f MyKey.pfx /p 123456 /v "YourAppPackage.appx"
参数说明:
/fd SHA256:指定文件摘要算法为SHA256,这是APPX签名的必要条件。/v:启用 verbose 模式,方便后续排查其他潜在问题。
3. 额外排查点
如果上面两步还没解决,检查以下内容:
- 确认PFX文件包含完整私钥:双击PFX文件,在证书导入向导里查看“私钥”选项,确认“标记此密钥为可导出”(生成时的
/pe参数已经做了这个操作,但还是可以验证下)。 - 升级SignTool版本:旧版本的SignTool对APPX签名支持不完善,建议使用Windows 10/11 SDK中的最新版本。
内容的提问来源于stack exchange,提问作者Oldes
相关产品推荐
相关产品推荐

