这是我第一次尝试将VSTO外接程序部署到用户的系统中,而且我遇到了安全障碍。外接程序是在VisualStudio2019 Community中构建的,旨在与Microsoft集成。用户运行Office 365。
在运行Setup.exe时,用户收到初始确认提示并单击“Install”。一个进度条会短暂出现并运行大约25%,然后弹出一条错误消息:“此应用程序中的自定义功能将无法工作,因为用于签署外接程序的部署清单或其位置的证书不受信任。”
我知道微软希望我支付一个签名证书,但我希望这是可行的,同时避免了费用。
微软的这篇文章将数字证书的使用描述为“一个可选步骤”:ClickOnce和Authenticode。本文指出,另一种路由是用户在安装过程中单击"ClickOnce信任提示“:授予Office解决方案信任。但就我所理解的进程而言,它甚至在到达ClickOnce信任提示符之前就已经停止了,因此用户永远得不到该选项。
作为比较,用户在较旧的系统上运行安装。在该系统上,他收到了ClickOnce提示,批准了该软件,并成功地运行到最后。这非常强烈地表明,较新系统上的问题是安全设置。
我指示用户打开Excel并转到选项>信任中心>信任中心设置>外接程序,并从“要求应用程序外接程序由受信任的发布者签名”中删除复选标记。一开始没有检查标记,所以设置不是问题。
我已指示用户进入命令提示符,并在每次新安装尝试之前清除所有失败安装的残馀rundll32 dfshim CleanOnlineAppCache
。
我不知道下一步该往哪里看。任何帮助都将不胜感激。
发布于 2020-07-13 23:30:49
一个相对容易的解决方法是:将“发布”文件夹打包为ZIP文件,禁用任何在线检查或部署(在项目设置中,选择在本地发布,而不是发布到网站。安装从网站或自动更新将无法工作,没有正常的证书)。然后给你的用户那个ZIP。用户下载该ZIP,然后右键单击ZIP文件并检查“取消阻塞”。然后解压缩并正常安装。现在任何证书都可以。如果您的用户从互联网下载您的文件,这也适用。
所以这个想法非常简单:在从您发送的ZIP存档中提取文件并运行它们之前,只需告诉您的用户单击"Unblock“复选框即可。
另一种解决方案是,简单地告诉用户系统信任您的“自签名”开发人员证书(将您的证书添加到用户计算机上的“受信任发布服务器”存储)。为此,您需要管理权限。请注意,除非您和您的用户在同一个组织中工作,否则用户的管理员可能不会喜欢这个想法。下面是说明:https://learn.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate
当然,最好也是最简单的方法就是购买普通的代码签名证书。它们没那么贵,你可以从COMODO (SectiGo)那里买到一台,价格大概是70美元/年,不过他们的经销商可以买到。
发布于 2020-07-13 23:13:14
在目标机器上。您需要安装并信任用于对加载项进行签名的证书(请参阅项目选项的签名选项卡)。
发布于 2020-07-20 06:54:14
认证过程需要什么,这是一个快速的过程吗?他们是在证明我/我的生意还是密码??
这是一个快速的过程:
发布时使用有效证书签名。
当宏设置高度安全时,在安装之前将发布服务器添加到受信任的发布服务器中。
完成安装。
您可以通过以下三种方式之一获得代码签名证书:
从证书供应商那里购买一个。
从组织中负责创建数字证书的组中接收一个证书。
使用MakeCert.exe生成您自己的证书,该证书包含在(SDK)中。
https://stackoverflow.com/questions/62885257
复制相似问题