签名的ClickOnce应用程序提供了#34;发布者无法验证"

时间:2018-06-11 13:14:23

标签: clickonce code-signing-certificate symantec

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

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

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

证书与“" Symantec Enterprise Mobile CA for Microsoft"”一起出现在“个人”文件夹中。和#34; 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表示将根证书放在"受信任的根证书颁发机构"

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

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

2 个答案:

答案 0 :(得分:1)

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

解决方案是在目标计算机上的证书存储区中的正确文件夹中安装3个证书(一次一个)。 根证书应位于“受信任的根证书颁发机构”下,中间证书应归入“中级证书颁发机构”。

最后,代码签名证书应位于“受信任的发布者”下。

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

答案 1 :(得分:0)

我通过这些操作解决了这个问题。我创建了用于认证的密钥文件。请按照以下步骤操作。
 转到项目属性,然后将打开上面的窗口。然后单击签名。然后单击新建。通过单击新建,您将能够创建密钥文件。像这样。

enter image description here

然后输入所需的文件名。然后输入密码(长度至少为6个字符)。然后输入确认密码。然后单击“确定”。

enter image description here

文件名应该显示在这里。 enter image description here

然后单击select from file。将出现以下窗口。然后选择密钥创建文件。然后最后一步构建解决方案。然后发布应用程序警告将被解决。 enter image description here