我正在公司网络上部署已签名的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.
问题:
为什么我需要在目标PC上的个人存储中安装证书才能使警告消失? 文档https://msdn.microsoft.com/en-us/library/ms996418.aspx表示将根证书放在"受信任的根证书颁发机构"
为什么我无法通过在" Trusted Publishers"中安装代码签名证书来实现静默安装。商店? 这样做会使警告再次出现。
如果两个中间证书和根证书也出现在Personal and Trusted Publishers文件夹中,是否会出现问题? 它们与代码签名证书一起安装。
答案 0 :(得分:1)
实现静默安装不需要时间戳URL。
解决方案是在目标计算机上的证书存储区中的正确文件夹中安装3个证书(一次一个)。 根证书应位于“受信任的根证书颁发机构”下,中间证书应归入“中级证书颁发机构”。
最后,代码签名证书应位于“受信任的发布者”下。
答案 1 :(得分:0)