[英]visual studio signing error: this certificate is not trusted on this PC
我正在尝试签署一个 UWP 应用程序,无论是调试还是发布,以便在其他一些设备上进行测试。 我的证书似乎无效。
这是我的步骤:
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)证书不是自签名的(颁发者与主题不同)
如果您购买了真正的代码签名证书,您不需要做任何事情,因为您支付的正是我们正在建立的信任......
Certificate Path
选项卡。Details
选项卡Copy to file
按钮以保存根证书。certmgr.msc
Personal
和 select Advanced Tasks | Import
Advanced Tasks | Import
以导入 pfx 文件。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.