已签名和带时间戳的可执行文件执行失败,并且未显示正确的详细信息

Omk*_*kar 6 code-signing timestamping windows-server-2008 code-signing-certificate verisign

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

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

此外,我无法在可执行文件的属性页中看到时间戳细节.请看下面 -

在此输入图像描述

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

我还检查了这个KB怀疑原因,但已经应用了与此KB相关的修复.任何人都可以分享更多的亮点吗?

Tam*_*mir 1

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