2010-05-11 59 views
1

我正在嘗試使用由Thawte發佈的代碼簽名證書籤名ActiveX控件。我能夠使用signtool.exe成功簽署控制。如何使用代碼簽名證書籤署ActiveX控件併成爲驗證的發佈者?

當我看一下這個文件的屬性,它說:「在簽名證書無法驗證。」

當我認爲它說證書「Windows沒有足夠的信息來驗證證書。」

在證書路徑選項卡,它說:「這個證書的頒發者無法找到。」

在Internet Explorer中,該證書是公認的簽字,但用戶將收到出版商沒有被證實的警告。

我試圖創建包含我的證書與根和該鏈到我Thawte的顯影劑證書中間證書沿着單個PFX文件,然後重新簽訂使用PFX文件中的控制。沒有骰子。

有什麼建議嗎?

+0

嗯,我可能已經解決了這個問題 - 看起來問題可能是我所包含的一個根證書不正確。當我部署新簽名的控件時,我將明確知道...... – davidcl 2010-05-11 21:15:26

+0

使用[OpenSSL for Windows]的描述(http://stackoverflow.com/questions/6654543/how-to-create-pfx-with- -的-證書我的鏈)。 – emboss 2011-07-11 18:57:02

回答

2

問題實際上包含使用包含根證書,中級證書,開發者證書和私鑰的PFX文件的正確procedure--進行數字簽名。另外,使用時間戳服務器。我的問題是我的PFX中包含錯誤的根證書,因此用於簽名的證書無法鏈接回根目錄。

通過請求,這裏是關於如何創建PFX文件的信息。我在下面使用的cert2spc和pvk2pfx也在平臺SDK中。

cert2spc certpath1.cer certpath2.cer certpath3.cer codesign.spc 

在哪裏的文件的.cer列表包括根,中間,和代碼簽名證書,並且codesign.spc是輸出文件。然後:

pvk2pfx -pvk privkey.pvk -spc codesign.spc 

運行以這種方式pvk2pfx啓動一個嚮導,私鑰密碼提示和輸出文件的位置,並輸出文件的密碼。

最後,signtool進行實際的代碼簽名:

signtool sign /f my_certificates.pfx /p my_passphrase /t http://timestamp.verisign.com/scripts/timstamp.dll my_activex_control.ocx 

現在回想起來,我可能會用signcode.exe又名代碼簽名嚮導(我認爲這是在.NET SDK的一部分)保存時間它直接使用.spc和.pvk文件。

+0

您是如何創建包含認證鏈中所有證書的PFX的?我有同樣的問題 - 你解決它沒有告訴我們如何! – 2011-07-04 20:54:53

+0

Ian,對不起,我沒有看到你的評論,但我實際上已經注意到了這一點,並將它們添加到這個答案。 – davidcl 2011-12-25 16:34:39