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