打开包含已签名加载项的文件时,可能会看到以下警告消息:
警告:数字签名有效,但来自尚未选择信任的发布者。
以下方案可能会触发此类警告:
-
启用“requireaddinsig”安全策略时。
注意: 此注册表策略要求用户仅使用由受信任的发布者签名的加载项。
-
系统更新后。
说明
这是一个已知问题。 启用“requireaddinsig”安全策略后,系统会验证所有签名证书是否都存储在 受信任的发布者 存储中,然后再加载加载项或任何关联的动态链接库 (DLL) 。
这些证书不仅用于对加载项进行签名,还用于对关联的官方 DLL 进行签名。 官方证书归 Microsoft 所有,但由于技术限制,它们不能嵌入到 Office 安装程序中。 因此,在颁发新版本时,开发人员或管理员需要手动更新 受信任的发布者 存储中的证书。
在这种情况下,受影响的 DLL 包括:
-
VSTOEE.DLL
-
FDATE.DLL
-
MOFL.DLL
-
IMCONTACT.DLL
-
FSTOCK.DLL
-
FBIBLIO.DLL
-
Azure DevOps 加载项
解决方法
若要解决警告,请执行以下作:
-
手动安装所需的证书。
-
在安装证书之前,将证书导出为.cer文件。
由于证书不经常更新,因此在颁发新版本时需要进行手动评审。
导出公钥证书
若要将公钥证书导出到.cer文件,请执行以下作:
-
搜索受影响的 .dll 文件 (例如, vstoee.dll 通常可以在“C:\Program Files\Common Files\microsoft shared\VSTO\vstoee.dll”或“C:\Program Files (x86) \Common Files\microsoft shared\VSTO\vstoee.dll') 找到。
-
在搜索结果中,选择 .dll 文件,右键单击并选择“ 属性”。
-
在“ 数字签名”选项卡下,选择“嵌入签名”下的签名,然后选择“ 详细信息”。
-
在“数字签名详细信息”对话框中选择“查看证书”。
-
在“ 详细信息”选项卡下,选择“ 复制到文件”,将结束证书导出到.cer文件。
-
在“ 证书路径”选项卡下,选择根证书,然后选择“ 查看证书”。
-
在“详细信息”选项卡下,选择根证书的“证书”对话框中的“复制到文件”,将根证书导出到另一个.cer文件。
部署证书
最终用户:
最终用户可以通过将导出的证书安装到其本地证书存储区来部署证书。 用户可以以管理员身份打开 cmd 并运行以下命令:
1. certutil -addstore -f "Personal" {cert path}
2. certutil -addstore -f "TrustedPublisher" {cert path}
组织管理员
组织管理员可以使用部署工具(如 组策略 对象 (GPO) )将证书部署到所有组织成员。 有关详细信息或故障排除帮助,请联系部署工具的支持服务。