签署 Excel .XLSM 文档、过期的代码签名证书和受信任的发布者

签署 Excel .XLSM 文档、过期的代码签名证书和受信任的发布者

简而言之:有没有办法信任证书或发布者,以便即使证书过期后信任仍然仍然存在?

更久远:我们为许多客户开发了 Excel 文档(除其他外)。这些文档包含 VBA 宏。在将文档交付给客户之前,我们会使用代码签名证书对文档进行签名。Excel 中的默认宏设置(我们所有客户都遵守)将向用户发出安全警告,即使文档经过数字签名。从安全角度来看,这是一件好事,但我们的一些客户的最终用户对此表示抱怨。虽然他们可以单击“启用内容”来运行代码,但他们认为每天多次执行此操作有点累人。

大约一年前,我们开始指导这些客户配置他们的计算机以信任我们的证书(即在他们的 PC 上将证书添加到“受信任的发布者”中)。我不知道具体是怎么做到的,但其中涉及到 GPO。这样做的结果是,“我们的”文档现在可以打开,并且 VBA 代码可以在没有警告的情况下运行。用户很高兴。

但是,我们的代码签名证书两年后就过期了,所以我们“续订”了它。(如果重要的话,这是来自 DigiCert 的)。为了测试证书,我刚刚用续订的证书签署了一份新的 Excel 文档,将其上传给我们的一位客户并进行了测试。安全警告再次出现。显然,这个新证书不受信任。事实证明,“续订”的证书实际上是一个全新的证书,(据我所知)与之前受信任的证书没有任何联系。所以,我们现在必须告诉我们的客户再次配置他们的 PC 以信任此证书。每两年(如果我们购买了最长期限,则可能是三年)必须重复此过程。

DigiCert 声称这是自然而然的——真的没有办法解决这个问题。“续订”证书实际上只是“获取全新证书”的另一种说法。它具有与发布者相同的公司文本名称,但仅此而已。这是真的吗?没有其他方法可以解决这个问题,比如延长即将过期的证书的有效期?或者您可以以不同的方式信任证书,以便来自同一“发布者”的新证书都受到信任?

希望我已经表达清楚了...

答案1

签署宏时需要使用时间戳。这样,只要您在证书有效时签署了宏,它们在证书过期后仍能运行。(除非证书被撤销,但那是另一个问题!)

这里有一些说明: https://stackoverflow.com/questions/55481835/do-i-need-to-re-code-sign-excel-macros-after-renewing-the-certificate 基本上,您需要编辑执行签名的用户配置文件的注册表。

注意:现在对已经存在的文档做任何事情都为时已晚。因此,您需要在配置时间戳后重新发布所有文档。但是,一旦您实施了此流程,它将在未来为您提供帮助。

相关内容