【问题标题】:Deploy VSTO Add-In Without Signing Certificate?在没有签名证书的情况下部署 VSTO 加载项?
【发布时间】:2020-11-03 04:53:39
【问题描述】:

这是我第一次尝试将 VSTO 加载项部署到用户的系统,我遇到了安全障碍。该加载项内置于 Visual Studio 2019 社区版,旨在与 Microsoft Excel 集成。用户运行 Office 365。

在运行 Setup.exe 时,用户会收到初始确认提示并单击“安装”。一个进度条短暂出现并运行了大约 25%,然后弹出一条错误消息:“此应用程序中的自定义功能将不起作用,因为用于签署 [插件] 的部署清单或其位置的证书是不受信任。”

我了解 Microsoft 希望我为签名证书付费,但我希望能在避免这笔费用的同时实现这一点。

Microsoft 的这篇文章将数字证书的使用描述为“可选步骤”:ClickOnce and Authenticode。这篇文章指出,另一种方法是用户在安装过程中单击“ClickOnce 信任提示”:Grant trust to Office solutions。但据我了解,该过程在到达 ClickOnce 信任提示之前就已停止,因此用户永远不会获得该选项。

为了比较,用户在旧系统上运行安装。在那个系统上,他收到了 ClickOnce 提示,批准了软件,安装成功运行到最后。这非常强烈地表明新系统上的问题是安全设置。

我指示用户打开 Excel 并转到选项 > 信任中心 > 信任中心设置 > 加载项,然后从“要求应用程序加载项由受信任的发布者签名”中删除复选标记。开始时没有复选标记,因此设置不是问题。

我已指示用户在每次尝试新安装之前转到命令提示符并使用rundll32 dfshim CleanOnlineAppCache 清除安装失败的所有残留物。

我不知道下一步该往哪里看。任何帮助将不胜感激。

【问题讨论】:

    标签: vb.net security office365 vsto


    【解决方案1】:

    在目标机器上。您需要安装并信任用于签署插件的证书(请参阅项目选项的签名选项卡)

    【讨论】:

      【解决方案2】:

      一个相对简单的解决方法:将“发布”文件夹打包为 ZIP 文件,禁用任何在线检查或部署(在项目设置中,选择在本地发布,而不是到网站。从网站安装或自动更新获胜没有正常的证书就不能工作)。然后给你的用户那个 ZIP。用户下载该 ZIP,然后右键单击 ZIP 文件并选中“取消阻止”。然后解压并正常安装。现在任何证书都应该这样做。这适用于您的用户从 Internet 下载您的文件。

      所以这个想法很简单:在从您发送的 ZIP 存档中提取文件并运行它们之前,告诉您的用户单击“取消阻止”复选框。

      另一种解决方案,您只需告诉用户系统信任您的“自签名”开发人员证书(将您的证书添加到用户计算机上的“受信任的发布者”存储中)。为此,您需要管理员权限。请注意,除非您和您的用户在同一个组织中工作,否则用户的管理员可能不会喜欢这个想法。以下是说明:https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate

      最好和最简单的当然是购买普通的代码签名证书。它们并不贵,你可以从 COMODO (SectiGo) 那里得到一个,例如通过他们的经销商以每年 70 美元的价格购买。

      【讨论】:

      • 您的选项#1(压缩并发送“发布”文件夹的内容)实际上是我所做的,所以不幸的是并没有阻止这个问题。您的选项 #2 可能是解决方案所在,但我不确定我是否理解说明。在您提供的链接中,步骤 1 显示“在您的 Web 浏览器中,导航到您的本地认证服务器”。在哪里可以找到我的本地认证服务器?
      • 在选项#1中,点击“Ublock”非常重要。您需要从下载的 ZIP 文件的右键菜单中打开“文件属性”才能进入此对话框。我很确定这应该可行。微软自己的#2分步说明在上面的链接中,请检查一下。
      • 天哪,你是对的!我们刚刚再次尝试使用“取消阻止”,它成功了。在一百万年里,我永远不会想到查看 zip 文件上的“解锁”设置。非常感谢!
      【解决方案3】:

      认证过程需要什么,这是一个快速的过程吗?他们是在证明我/我的业务还是代码??

      这是一个快速的过程:

      发布时使用有效证书签名。

      当宏设置为高安全级别时,在安装前将发布者添加到受信任的发布者中。

      完成安装。

      您可以通过以下三种方式之一获取代码签名证书:

      从证书供应商处购买。

      从您组织中负责创建数字证书的小组接收一份。

      使用包含在 Windows 软件开发工具包 (SDK) 中的 MakeCert.exe 生成您自己的证书。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-06
        • 1970-01-01
        • 2012-09-02
        • 1970-01-01
        • 2017-03-30
        • 2015-12-16
        • 1970-01-01
        • 2021-10-23
        相关资源
        最近更新 更多