我正在努力用Excel 2016签署带有时间戳的XLA文件。这很重要,因为如果代码签名证书过期,则没有时间戳的签名将变得无效。不幸的是,默认情况下,Excel不会对签名应用时间戳。Microsoft的文档(https://learn.microsoft.com/en-us/deployoffice/security/use-digital-signatures-with-office)说明:
要使用数字签名的时间戳功能,您必须完成以下任务: - 设置符合RFC 3161的时间戳服务器 - 使用组策略设置“指定服务器名称”来输入网络上时间戳服务器的位置。
我的证书颁发机构Comodo表示,他们的时间戳服务器(
我从https://go.microsoft.com/fwlink/p/?LinkID=626001下载并安装了Office 2016管理模板文件(ADMX / ADML),以应用组策略设置。在本地组策略编辑器中,我可以访问用户配置,管理模板,Microsoft Office 2016,安全设置,数字签名,其中包含相关的组策略设置。
我最初进行了以下设置:
我正在使用“工具”菜单中的“数字签名”在VBA编辑器中进行签名。
然而,当我检查签名时,我仍然看不到时间戳。
我按照以下方式检查签名(我不知道更简单的方法):
1. 在“开发人员”选项卡中,单击“宏安全性”,选择“加载项”,然后选中“要求应用程序加载项由可信发布者签名”。单击“确定”,然后关闭Excel。(我不是可信发布者,所以我有意使我的加载项被禁用。) 2. 重新启动Excel,并创建一个空工作簿。(我的加载项已配置为自动加载。)由于步骤1,会显示SECURITY WARNING。 点击提示以获取更多详细信息,然后从“启用内容”菜单中选择“高级选项”。 在Microsoft Office安全选项对话框中,向下滚动到已签名的插件并单击显示签名详细信息。 这将打开数字签名详细信息对话框,其中显示签名时间:
要使用数字签名的时间戳功能,您必须完成以下任务: - 设置符合RFC 3161的时间戳服务器 - 使用组策略设置“指定服务器名称”来输入网络上时间戳服务器的位置。
我的证书颁发机构Comodo表示,他们的时间戳服务器(
http://timestamp.comodoca.com
)支持RFC 3161(https://support.comodo.com/index.php?/Knowledgebase/Article/View/68/0/time-stamping-server)。我从https://go.microsoft.com/fwlink/p/?LinkID=626001下载并安装了Office 2016管理模板文件(ADMX / ADML),以应用组策略设置。在本地组策略编辑器中,我可以访问用户配置,管理模板,Microsoft Office 2016,安全设置,数字签名,其中包含相关的组策略设置。
我最初进行了以下设置:
- 指定时间戳服务器名称为
http://timestamp.comodoca.com
- 设置时间戳服务器超时为
20
- 指定数字签名生成的最小XAdES级别为
XAdES-T
- 要求的数字签名生成XAdES级别为
XAdES-T
我正在使用“工具”菜单中的“数字签名”在VBA编辑器中进行签名。
然而,当我检查签名时,我仍然看不到时间戳。
我按照以下方式检查签名(我不知道更简单的方法):
1. 在“开发人员”选项卡中,单击“宏安全性”,选择“加载项”,然后选中“要求应用程序加载项由可信发布者签名”。单击“确定”,然后关闭Excel。(我不是可信发布者,所以我有意使我的加载项被禁用。) 2. 重新启动Excel,并创建一个空工作簿。(我的加载项已配置为自动加载。)由于步骤1,会显示SECURITY WARNING。 点击提示以获取更多详细信息,然后从“启用内容”菜单中选择“高级选项”。 在Microsoft Office安全选项对话框中,向下滚动到已签名的插件并单击显示签名详细信息。 这将打开数字签名详细信息对话框,其中显示签名时间:
不可用,表示缺少时间戳:
我的理解是带有时间戳的签名将在此处显示,例如:
...但是我使用XLA无法实现这一点。