6

请注意,这个问题只适用于Windows Server 2008 SP2签名和时间标记可执行程序无法执行,并且不显示正确的细节

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

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

enter image description here

现在,该证书是根据本SO文章What happens when a code signing certificate expires?过期,但。可执行文件应该完美无缺地运行。

我也检查了this KB怀疑原因,但已修复与此KB有关的修复。任何人都可以分享更多的光线吗?

回答

1

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

+0

我知道我需要在证书过期前签署二进制文件。 – Omkar