【问题标题】:Create a temporary certificate manually手动创建临时证书
【发布时间】:2012-09-15 04:04:22
【问题描述】:

我想通过命令提示符创建一个临时证书(构建 Metro 应用程序所必需的)。我曾尝试用 CMD 做到这一点:

makecert.exe -n "CN=MY_DOMAIN" -r -a sha1 -sv MY_DOMAIN.pvk MY_DOMAIN.cer –ss root

pvk2pfx -pvk MY_DOMAIN.pvk -spc MY_DOMAIN.cer -pfx MY_DOMAIN.pfx

但是当我在我的项目中使用这个 pfx 文件时,出现以下错误:

C:\程序文件 (x86)\MSBuild\Microsoft\VisualStudio\v11.0\AppxPackage\Microsoft.AppXPackage.Targets(1142,9): 错误:APPX0107:指定的证书对签名无效。

【问题讨论】:

    标签: .net windows-8 certificate microsoft-metro


    【解决方案1】:

    三个变化:

    1. 证书在增强型密钥使用扩展中缺少代码签名 OID (1.3.6.1.5.5.7.3.3)。使用-eku 1.3.6.1.5.5.7.3.3 参数将其添加到makecert
    2. 通过将-ss root 替换为-ss My,将证书放入My 证书存储区而不是根证书存储区。
    3. 使用 makecert 的 -cy end 参数确保证书是基本约束扩展中的最终实体。

    有关签署 Windows 应用商店应用程序的更多信息,请参阅 MSDN Signing an app package (Windows Store apps),有关 makecert 参数的更多信息,请参阅 MakeCert

    【讨论】:

    • 感谢您的快速答复,但问题是一样的,即使我安装了证书,我也有同样的错误。再次感谢:-)
    • @EtienneBaudoux 我添加了一个关于将证书放入My 存储而不是Root 存储的内容。
    • 再次感谢。它看起来更好,因为证书现在自动安装在证书库的个人类别中。但是,总是有同样的错误=/
    • @EtienneBaudoux 从根证书存储中删除旧证书(任何具有匹配主题的证书),重新创建 PFX 文件并在代码中引用它。
    • @EtienneBaudoux 我进一步扩展了答案,并添加了指向 MS 网站的链接,其中包含更多信息。
    猜你喜欢
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    相关资源
    最近更新 更多