繁体   English   中英

Visual Studio 签名错误:此证书在此 PC 上不受信任

[英]visual studio signing error: this certificate is not trusted on this PC

我正在尝试签署一个 UWP 应用程序,无论是调试还是发布,以便在其他一些设备上进行测试。 我的证书似乎无效。

这是我的步骤:

  • 我右键单击我的 UWP 项目,选择“发布”,然后选择“创建应用程序包”。
  • 在弹出窗口中,我选择“sideloading”。
  • 然后我会询问是否要签署 package。
  • 我想选择“是”。 我有一个证书,其中subject与清单中的publisher者相匹配。 但是,就在下面,它显示一条消息“此证书在此 PC 上不受信任”。

如果我继续,VS 将创建一个包含一些安装文件的文件夹。 如果我单击“...x64.msixbundle”,它会显示一个对话框,上面写着“更新...?”,并带有注释“不受信任的应用程序”和下方的消息“此应用程序 package 未使用受信任的证书签名。 ..”(或者,我可以在 powershell 中运行 Install.ps1 脚本,得到相同的结果。)我不能进一步 go。 而且,这是在我正在开发的同一台 PC 上。

我已尝试遵循Create a certificate for package 签名的说明以及一些相邻页面。 他们推断使用 VS 向导应该可以正常工作。

PS 我以前从未签署过 Windows 应用程序。 也许我应该以完全不同的方式来做这件事?

需要信任主题与发布者匹配的证书。

那么该怎么办:

a) 证书是自签名的(颁发者与主题相同)

  • 运行certlm.msc (用于机器范围的信任)或certmgr.msc以获取当前用户信任。
  • 将证书导入Trusted Root Certificate Authorities

b)证书不是自签名的(颁发者与主题不同)

如果您购买了真正的代码签名证书,您不需要做任何事情,因为您支付的正是我们正在建立的信任......

  • 获取根/颁发者证书
    • *.cer吗?
      • 双击cer文件
      • 单击Certificate Path选项卡。
      • 双击树中的第一个证书 - 如果只有一个询问您从哪里获得证书!
      • 在新打开的 window 上单击Details选项卡
      • 单击Copy to file按钮以保存根证书。
    • 有一个 *.pfx 导入它
      • 运行certmgr.msc
      • 右键单击Personal和 select Advanced Tasks | Import Advanced Tasks | Import以导入 pfx 文件。
      • 识别导入的证书并导出根证书(请参阅拥有 *.cer)
  • 运行certlm.msc (用于机器范围的信任)或certmgr.msc以获取当前用户信任。
  • 将根证书导入Trusted Root Certificate Authorities

对于 package 签名,证书有额外的要求:

您用于签署应用程序 package 的证书必须满足以下条件:

  • 证书的主题名称必须与存储在 package 中的 AppxManifest.xml 文件的 Identity 元素中包含的 Publisher 属性匹配。 发布者名称是打包的 Windows 应用程序标识的一部分,因此您必须使证书的主题名称与应用程序的发布者名称匹配。 这允许根据数字签名检查签名包的身份。 有关使用 SignTool 对应用 package 进行签名时可能出现的签名错误的信息,请参阅如何创建应用 package 签名证书的备注部分。
  • 证书必须对代码签名有效。 这意味着这两项都必须为真:
    • 证书的扩展密钥使用 (EKU) 字段必须未设置或包含代码签名的 EKU 值 (1.3.6.1.5.5.7.3.3)。
    • 证书的密钥使用 (KU) 字段必须未设置或包含数字签名的使用位 (0x80)。
  • 该证书包含一个私钥。
  • 证书有效。 它处于活动状态,尚未过期,也未被撤销。

来源: https://docs.microsoft.com/en-us/windows/win32/appxpkg/how-to-sign-a-package-using-signtool

配置 VS 以使用签署您要使用的证书的客户 CA(证书颁发机构)。

这个 CA 应该是根 CA,因此任何中间 CA 也将被信任。

此问题的一般原因是缺少根 CA 并且无法完成信任链,这意味着您可能只安装了中间 CA。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM