【问题标题】:How to code sign an XML file for Windows 8 Store apps如何对 Windows 8 应用商店应用的 XML 文件进行代码签名
【发布时间】:2026-01-17 05:00:01
【问题描述】:

为了使用 Windows 8 应用程序中的某些功能(即文档库),开发人员必须根据仪表板信息使用 SHA2 对来自 Microsoft 的 XML 文件进行 EV 代码签名:

某些专业应用只能从开发者帐户提交 已经进行了额外的身份验证证明。这 EV 状态是通过下载 XML 文件并使用 EV 代码签名证书。大多数开发者帐户不需要这个 附加状态。

http://msdn.microsoft.com/en-us/library/windows/apps/jj863494.aspx

此外,声明documentsLibrary 功能的应用程序可以 只能从可以证明他们的开发者帐户提交 已获得扩展验证 (EV) 代码签名证书 来自证书颁发机构 (CA)。 EV 状态由以下人员确认 下载并签署由 Windows 应用商店提供的 XML 文件 具有通过以下方式获得的有效 EV 代码签名证书的门户 Symantec 或 Digicert。

我有 XML 文件和 Symantec 的证书,但是我找不到任何关于如何对 XML 文件进行代码签名的文档。我能找到的最接近的是 symantec 网站上关于 signtool.exe 的文章

https://knowledge.verisign.com/support/code-signing-support/index?page=content&actp=CROSSLINK&id=SO20528

但是当我尝试将 signtool 与 Microsoft 的 XML 文件一起使用时,我收到错误消息“此文件格式无法签名,因为它无法被识别”。

所以我的问题是,如何使用我的证书签署这个 XML 文件,以便我可以将我的应用程序上传到商店?

【问题讨论】:

    标签: windows microsoft-metro windows-store-apps code-signing


    【解决方案1】:

    作为MSDN suggest,你应该使用Code Signing Tool for Xml

    代币用途:

    SignXml.exe TOKEN SHA256 {publicCert.cer} {signable xml} 
    

    Pfx 的用途:

    SignXml.exe PFX SHA256 {cert.pfx} {publicCert.cer} {signable xml}
    

    如果您没有 .pfx 文件而只有 .pvk,请使用此工具转换:pvk2pfx.exe(来自 Windows Platform SDK)。

    例如:pvk2pfx.exe -pvk myCertificate.pvk -spc myCertificate.cer -pfx myCertificate.pfx -po pa$$word

    【讨论】:

    • EV 证书不附带 pfx 或 pvk。我一直在尝试使用 TOKEN,它确实运行没有错误,但是在上传时,它说签名方法无效。这是另一个有同样问题的人:social.msdn.microsoft.com/Forums/windowsapps/en-US/…
    • 你有SafeNet eToken PRO 72K吗?
    • install SafeNet 客户了吗?
    • 您是否导出并使用了.der格式的公共证书?
    • 我使用 .der 格式作为公共证书 (publicCert.cer)
    【解决方案2】:

    请尝试使用此工具对您的 xml 文件进行签名:http://www.signfiles.com/xml-signer/ Windows SDK 中的 Signtool 只能通过向文件添加附加部分来对二进制文件(如可执行文件或 dll)进行签名。

    【讨论】:

    • 这有效,只是当我尝试将其上传到 Microsoft 时,他们说“验证错误:您必须使用 SHA2 签署 XML 文件。”我看不到在该应用中使用 SHA2 的方法。
    • 我坚持 SHA2 要求。 codesignforxml.codeplex.com 上的应用程序绝对有 0 个文档。它是命令行,我尝试了 10 种不同的方式运行它,唯一的错误输出是空引用异常。
    • 我找到了一种通过安装用户证书来创建文件的方法,但随后应用商店拒绝了它,说这不是可接受的签名方法。
    • 版主能否将其作为已接受的答案删除?原始答案不正确,甚至 OP 对有效链接的响应也不起作用。要么,要么它需要更多关于如何使用它的细节。这是另一位在使用上述应用时遇到问题的用户:msdn.microsoft.com/en-us/library/windows/desktop/… 当我的问题与此问题相同时,我不想打开一个新问题。
    • @Lawrence Johnson 我希望你有一个有效的证书?