got*_*ike 5 excel ssl vba code-signing ms-office
我有一个 DigiCert EV 代码签名证书来签署我的 C# 代码,而且效果很好。
但是,现在我尝试在 Excel XLSM 文件中签署 VBA 代码。
我收到错误“数字证书存在问题。无法对 VBA 项目进行签名。签名将被丢弃。”
DigiCert 支持似乎无法找到解决方案。
我尝试先保存 VBA 项目,然后保存文件,如此处所述... https://social.technet.microsoft.com/Forums/en-US/07f0158c-085b-4031-93a1-c9d047cf855c/unable- to-sign-outlook-2010-vbaproject?forum=outlook
我有 EV 代码签名证书,因此我无法导出具有此处讨论的证书路径的文件... https://knowledge.digicert.com/solution/SO1451.html 和此处... 无法使用有效的 VBA 进行签名Sectigo 代码签名证书
我想也许是因为我有 EV 证书,而我实际上可能需要 PFX 证书,但 DigiCert 说了以下内容......
到 11 月(或更早),标准代码签名也将不再可能。不可能的原因是标准要求“合格”硬件来存储私钥和代码签名证书,并且该硬件默认将其设置为“只读”或更具体地说,以便您可以使用它但可能无法导出。
所以我希望这里有人能回答这个问题。微软刚刚发布了一些 Office 更新,该更新将阻止 VBA,无需一堆额外步骤,除非代码已签名... https://learn.microsoft.com/en-us/deployoffice/security/internet-macros-blocked
非常感谢这里的任何帮助...
此问题的根本原因是 SafeNet 身份验证客户端软件的默认行为发生了变化(从版本 10.5 开始)。默认情况下禁用一系列过时/已弃用的加密算法(包括 Office/Excel VBA 签名所需的算法)。有关更多详细信息,请参阅泰雷兹网站上的原始知识库文章(感谢 DigiCert 支持提供此文章)。
我找到了两种解决方案:


Ctrl + Shift + Esc键盘快捷键),转到“详细信息”选项卡。右键单击 -> 结束任务任何名称以“SAC...”开头的剩余进程(即使从托盘中退出 SAC 后,我仍然运行其中一个进程!):

WinKey + R然后使用键盘快捷键regedit)。导航到该HKEY_LOCAL_MACHINE\SOFTWARE\SafeNet\Authentication\SAC密钥,右键单击“SAC”并选择“新建”->“密钥”。为新密钥命名Crypto

Crypto我们刚刚创建的新键,然后选择“新建”->“字符串值”。命名新值Disable-Crypto

Disable-Crypto我们刚刚创建的新值。在出现的对话框中,将“值数据”属性设置为None并单击“确定”

