You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DigiCert EV代码签名证书签署Excel XLSM文件VBA代码时遇错误

无法使用DigiCert EV代码签名证书签署Excel VBA项目的解决方案

问题描述

我持有一张DigiCert EV代码签名证书,用于签署C#代码完全正常,但尝试签署Excel XLSM文件中的VBA代码时,弹出错误提示:

There was a problem with the Digital Certificate. The VBA Project could not be signed. The signature will be discarded.

已尝试先保存VBA项目再保存文件的常规方案,无效;EV证书因硬件存储私钥为只读,无法导出带证书路径的文件,也无法获取PFX格式证书(DigiCert说明合格硬件存储的私钥默认只读,不可导出,未来标准代码签名也会如此)。同时微软近期更新后,未签名VBA代码会被拦截,急需解决办法。

可行解决方案

1. 修复Office证书识别权限

  • 运行certmgr.msc打开证书管理器,确认EV证书已安装在当前用户的「个人」证书存储中。若证书仅在硬件密钥容器内,可尝试将证书链(不含私钥)导入本地个人存储,部分Office版本对硬件存储的证书识别存在兼容性问题。
  • 右键点击EV证书,选择「所有任务」>「管理私钥」,确保当前用户拥有「读取」权限,避免Office因权限不足调用私钥失败。

2. 使用signtool.exe直接签署文件

通过微软官方的签名工具绕过VBA内置签名功能,直接签署XLSM文件:

# 若能识别硬件密钥容器,使用此命令(先通过certutil -store My查看密钥容器名称)
signtool sign /csp "你的加密服务提供商名称" /kc "密钥容器名称" /t "https://timestamp.digicert.com" "目标文件.xlsm"

注:加密服务提供商名称通常为Microsoft Smart Card Key Storage Provider(针对EV硬件密钥)。

3. 临时应急设置(不推荐长期使用)

若上述方案暂未生效,可临时调整Office宏信任规则:打开Excel>文件>选项>信任中心>信任中心设置>宏设置,选择「启用所有宏」,但此操作仅为临时应急,需尽快完成签名配置以保障安全。

4. 向DigiCert申请Office专属适配指导

明确告知DigiCert技术支持问题场景为Office VBA代码签名,要求提供针对硬件存储EV证书的适配配置步骤,部分CA会有针对特定应用的隐藏配置指南。

内容的提问来源于stack exchange,提问作者gotmike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 08:27:38