签名的 ClickOnce 应用程序提供 "Publisher could not be verified"

Signed ClickOnce app gives "Publisher could not be verified"

我正在公司网络上部署签名的 ClickOnce 应用程序。该应用程序是一个桌面应用程序,由构建服务器构建并部署到共享驱动器位置。它使用我们为我们的组织购买的 Symantec 代码签名证书进行签名。每个开发人员都将证书安装到他们的个人存储中,构建服务器也是如此。 个人商店是唯一可从 VS 用于签名的位置。

当我尝试在非开发机器上安装应用程序时,收到 "Publisher could not be verified" 警告。 即使根证书存在于计算机上的 CA 证书存储中,并且代码签名证书存在于受信任的发布者存储中,也会发生这种情况。两个证书都显示为 "OK",在机器上有可追踪的路径。

但是如果我将代码签名证书安装到个人存储(与在开发电脑上相同),警告就会消失。相反,我得到一个更友好的对话框,询问是否应该安装该应用程序。

证书与 "Symantec Enterprise Mobile CA for Microsoft" 和 "Symantec Enterprise Mobile Root for Microsoft" 一起出现在个人文件夹中。

该应用程序是使用 .NET 4.71 和 Visual Studio 2017 构建的,目标机器是 运行 Windows 10.

问题:

  1. 为什么我需要在目标 pc 上的个人存储中安装证书才能使警告消失? 文档 https://msdn.microsoft.com/en-us/library/ms996418.aspx 说在 "Trusted Root Certification Authorities"

  2. 中拥有根证书就足够了
  3. 为什么在"Trusted Publishers"商店中安装代码签名证书无法实现静默安装? 这样做会使警告再次出现。

  4. 如果Personal and Trusted Publishers 文件夹中也出现中间证书和根证书这两个,会不会有问题? 它们与代码签名证书一起安装。

实现静默安装不需要时间戳 URL。

解决方案是将 3 个证书(一次一个)安装到目标计算机上证书存储区的正确文件夹中。 根证书应在 "Trusted Root Certification Authorities" 下,中间证书应在 "Intermediate Certification Authorities".

最后,代码签名证书应在 "Trusted publishers" 下。

https://knowledge.digicert.com/solution/SO20770.html

我解决了这个问题 action.I 按照以下步骤为 certification.You 创建密钥文件。
转到项目属性然后 window 上方将是 open.Then 单击 signing.Then 您单击 new.By 单击新建您将能够创建密钥文件。像这样。

然后输入你的文件名want.Then输入密码至少6个字符long.Then输入确认password.Then点击OK.Like这个

文件名应该显示 here.I 有提及。

然后点击select from file.The below window should appear.Then select key created file.Then last step build solution.Then 发布应用程序警告将得到解决。