6

我發佈了一個Windows桌面應用程序,其中包含由Verisign Class 3代碼簽名證書進行數字簽名的所有可執行文件。對於絕大多數用戶來說,這似乎工作得很好。VeriSign Class 3證書不被Windows信任?

但少數用戶報告證書無效。他們說它帶有消息「證書鏈已處理,但終止於信任提供商不信任的根證書」。這對應於錯誤代碼CERT_E_UNTRUSTEDROOT (0x800B0109)。這在全面更新的Windows 7機器上也有報道。所以大概我的證書是好的,但Windows有時不相信VeriSign證書。

爲什麼Windows有時不相信威瑞信?有什麼我可以添加到我的安裝程序(也簽名),這將告訴Windows相信證書?

+2

我建議聯繫Verisign支持 - 他們應該更好地瞭解可能的原因。關於你的問題 - 你不能做任何事情來解決這個問題(除了聯繫支持和報告最大數量的細節問題)。 –

+1

很多我的生活在G5病毒上的一週:https://knowledge.verisign.com/support/code-signing-support/index?page=content&id=SO16958&actp=search&viewlocale=zh_CN&searchid=1313006972482 –

回答

8

Microsoft通過Windows Update推出的根證書經常更新,但它們被標記爲「可選更新」。因此,並非所有用戶都可能安裝了它們,並且可能需要手動安裝它們。這也適用於「完全更新」的計算機,因爲自動安裝通常設置爲只安裝「重要更新」,而根證書更新不是。

根據桌面應用程序的類型,您在簽名時也可能必須遵守特定規則。例如,與Windows安全中心交互的應用程序基本上需要與驅動程序相同的簽名方法。也就是說,證書鏈隨簽名一起嵌入(/ac切換到signtool)。您可以獲得適用於VeriSign證書的MSCV-VSClass3.cer

這個過程通常被稱爲交叉簽名,這似乎是一個誤用。雖然這是讓您的驅動程序二進制文件或目錄交叉簽名的一個步驟,但重要的一步是微軟簽署驅動程序(或更常見的是目錄文件),這是實際的交叉簽名。