6

请注意,此问题仅适用于 Windows Server 2008 SP2

我开发了一个 Windows 应用程序。在分发它之前,我已经使用 SHA1 和 SHA256 对其进行了签名和时间戳记。此应用程序由多个 DLL 组成。我在构建过程中对每个 DLL 进行签名。我使用了 VeriSign 的证书。在执行时,当应用程序启动时,它会使用WinVerifyTrust API验证每个 DLL 的签名和时间戳以确保完整性。我在验证期间收到“E_CERT_EXPIRED - 签名者证书已过期”错误。

此外,我无法在可执行文件的属性页面中看到时间戳详细信息。请看下文——

在此处输入图像描述

现在,该证书已过期,但根据此 SO 文章代码签名证书过期时会发生什么?. 可执行文件应该可以完美运行,没有任何问题。

我还检查了此 KB怀疑原因,但已应用与此 KB 相关的修复。有人可以分享更多关于这一点的信息吗?

4

1 回答 1

1

你不能用过期的证书签名,它不起作用(你自己看到结果)。您可以做的是使用有效证书签名,然后签名的应用程序不会因为签名时的有效时间戳而过期。

于 2017-10-19T19:36:42.600 回答