2010-11-10 82 views
0

我有一個ActiveX控件,應該在第一次訪問網頁時安裝。我可以使用根證書籤署ActiveX控件嗎?

我有使用OpenSSL創建的自簽名證書及其子。問題是,如果我使用根證書籤名了一個activeX控件,Windows在檢查activex時無法驗證它,即使它被安裝爲可信。

它寫道,

「證書的基本擴展尚未觀察」

,並在 「查看證書」:

「的證書是不是因爲有效驗證路徑中的一個證書頒發機構似乎不被允許頒發證書或該證書不能用作最終實體證書「。

如果我使用子證書進行簽名,而根證書是可信的,eberything是好的。

我想根證書只能簽署證書相關的東西,而不是文件等,但是要確定這一點。

回答

1

我認爲那個錯誤信息試圖告訴你的是你爲你的密鑰生成的證書沒有包含正確的證書擴展。代碼簽名需要爲代碼簽名生成的證書。其他類型的證書 - 例如那些爲簽署數據而生成的數據 - 受到CA審查的限制,因此提供了代碼簽名所需的較低級別的安全性。

您應該設置自己的自簽名根證書進行密鑰簽名,並且應該爲代碼簽名設置子證書。那麼你的ActiveX簽名應該沒問題,只要你的根證書在瀏覽器的可信密鑰庫中。一般來說,密鑰簽名證書應該設置爲只有用於密鑰簽名,並且代碼簽名證書應該設置爲僅用於代碼簽名,因此您不能將這些密鑰用於任何其他目的。

該解決方案在組織內可以正常工作,您可以事先在每個用戶的PC上安裝根密鑰。如果你想在公共互聯網的網頁上使用你的ActiveX控件,你必須說服用戶信任你的證書(儘管他們沒有足夠的理由這樣做),否則你將不得不購買代碼簽名證書來自一個商業CA,其根證書已被普通瀏覽器所知曉。

最後,我想真的建議不要使用ActiveX控件任何,因爲他們只能將能在Windows上運行,而且只有他們信任。大多數有意義的人會設置瀏覽器的安全性來拒絕它們。你將有更多的成功的生產用不同的技術(例如的Javascript

+0

謝謝。儘管如此,我自己找到了答案。 – foret 2010-11-17 16:40:53

+1

如何使用OpenSSL生成可用於簽署代碼的單個證書*和*還可以存儲在受信任的根證書存儲中以允許其驗證? – 2013-09-17 16:30:58

0

使用自簽名的證書進行數字簽名的二進制文件的活動內容幾乎違背了concept of using digital certificates與程序。基本的想法是證明代碼是由你創建的(真實性),並且自從發佈它(完整性)以來未被修改過。這必須通過使用由可信認證機構(CA)簽署的簽名證書來完成。

我已經在下面的問題中詳細解答了這個問題。

creating a key and signing executable with signtool

+1

自簽名證書仍有很好的用途。如果您有內部質量保證環境,可執行文件需要簽名和測試?我們有一個,我們的QA環境不得生成正式簽名的可執行文件。購買僅用於QA的官方證書是不值得的(也是危險的)。 – 2013-08-26 18:06:26

相關問題