[Windows] ActiveX 進行 Code Sign 憑證簽署 (ActiveX to Code Sign Certificate Signing)

當取得到 Code Sign 憑證後,就可以對程式進行簽署,由該程式是已經認證過之安全憑證,故使用者可以安心使用~~

當取得到 Code Sign 憑證後,就可以對程式進行簽署,由該程式是已經認證過之安全憑證,故使用者可以安心使用~~

 

在本章中介紹如何將憑證簽署於 ActiveX 中,將分別於此說明在 Windows 2003 與 Windows 2008 環境下所產生的授檔案如何進行簽署?

 

Windows 2003

Windows 2008

產生之授權檔案

1. Root.cer

2. Test.cer

3. Test.pvk

1. Root.cer

2. Test.pfx

※ Windows 2003 & 2008 簽署方式略有不同。

 

P.S. 若您想了解更多憑證資訊,請參考『Windows 憑證服務指南』。

 

若您仍不知相關知識者,請閱讀以下的流程指令:(老手請直接從第4點了解即可)

一、如何撰寫 ActiveX 程式?

推薦小朱寫的「使用 .NET Framework 開發 ActiveX Control」系列文章,大體上來說撰寫 ActiveX 有以下步驟:

【以下內容在小朱的文章都有提到,在此只是簡短的說明】

1. 建立 ActiveX 控制項專案 (Ex:C++、VB、Delphi、C#...等)。

2. ActiveX 控制項的基本測試。

3. 實作 ActiveX 控制項,一般來說脫離不了以下作業事項:

● 定義用途。

● 實作屬性與方法。

● 事件處理。

二、IE 環境調整與測試:

當我們第一次在IE上使用自己寫的 ActiveX 控制項,或是在引用時加上參數,IE都會出現安全性的警告,至於為何會出現這項警告,小朱的文章中已有說明。

三、封裝作業:

若 ActiveX 控制項需要能夠直接從網路下載安裝給 IE 使用,必須要有兩個步驟:

1. 確認控制項能自我登錄(Self-Registration),小朱的文章中已有說明。

2. 將檔案封裝成 CAB 檔安以供安裝,以下為作業流程:

下載 Microsoft Cabinet Software Development Kit

● 於 DOS Mode 下達以下語法後即可得到一個 CAB 檔案:

cabarc n MyControl.cab Install.inf setup.exe MyControlInstaller.msi

檔案總管中目前是沒有 CAB 檔案:

01-01

下達上述指令:

01-02

檔案總管中已看到產生的 CAB 檔案:

01-03

四、進行憑證簽署:

由於 ActiveX 控制項的控制權很大,為了避免使用者誤安裝帶有病毒或後門程式的ActiveX 元件,IE 要求安裝時必須經過簽署,凡是未簽署的 ActiveX 控制項,IE 內定都是不能下載安裝的,即便是在中低等級的情況下。

所謂簽署,就是在檔案上加上開發者的憑證(包含了認證單位資訊、開發者資訊、開發者公鑰)、以及安裝檔的數位簽章與時間戳記(以開發者私鑰加密,確認安裝檔未被修改)。當IE要下載安裝元件前,會先將安裝檔裡的數位簽章與時間戳記傳送給認證單位,確認資訊無誤後,才提示使用者是否要安裝。

常見的認證單位有Verisign、Thawte…等。兩者的申請流程都差不多,必須填寫申請者的名字、電話、住址、Email、公司資訊,認證單位會再連絡並確認申請者的身份後,才會簽發憑證檔與私鑰檔。如果是國內公家單位的開發商,其實也可跟公家單位的認證中心申請憑證與私鑰,效果也是一樣的。

※ 在本章前,已介紹了如何自建憑證伺服器的相關系列文章,故在本文將跟各位說明如何運用自建的環境進行憑證的簽署~~

五、簽署 Windows 2003 所產生之憑證:

1. 開啟 Signcode.exe 程式:

開始 --> 程式集 --> Microsoft Visual Studio --> Visual Studio Tools --> Visual Studio 命令提示字元 --> 輸入 Singcode.exe 即會跑出以下畫面

02-01

※ Signcode.exe 亦可以指令模式下達,若您有需要請參考 Microsoft MSDN

※ 本文在簽署工具上時使用 Signcode.exe 進行處理,但若您使用更新的版本時 (Ex:.Net 4.0),請改用 Signtool.exe 進行簽署。

2. 檔案選取:

按 [瀏覽] --> 按 [下一步]

02-02

檔案類型選擇 [Cabinet 檔 (*.cab)] --> 選擇 [MyControl.cab] --> 按 [開啟]

02-03

按 [下一步]

02-04

3. 簽署選項:

選擇 [自訂] --> 按 [下一步]

02-05

4. 簽章憑證:

按 [從檔案選取]

02-06

檔案類型選擇 [X.509 憑證 (*.cer;*.crt)] --> 選擇 [Test.cer] --> 按 [開啟]

02-07

檢視憑證資訊後,按 [下一步]

02-08

5. 私密金鑰:

按 [瀏覽]

02-09

檔案類型選擇 [私密金鑰 (*.pvk)] --> 選擇 [Test.pvk] --> 按 [開啟]

02-10

按 [下一步]

02-11

輸入申請時所用的 [密碼] --> 按 [確定]

02-12

6. 雜湊演算法:

選擇 [sha1] --> 按 [下一步]

02-13

7. 其他憑證:

保持預設選擇 --> 按 [下一步]

02-14

8. 資料描述:

填寫 [描述] --> 按 [下一步]

02-15

9. 加上時間戳記:

勾選 [將資料加上時間戳記] --> 填寫 [時間戳記服務 URL] 為 http://timestamp.verisign.com/scripts/timstamp.dll --> 按 [下一步]

(以上 URL 位置為世界公認的 VeriSign 組織所提供)

02-16

10. 完成數位簽章精靈 --> 按 [完成]

02-17

輸入申請時所用的 [密碼] --> 按 [確定]

02-18

11. 數位簽章執行成功

02-19

六、簽署 Windows 2008 所產生之憑證:

由於 Windows 2008 不再提供匯出 pvk 檔,故必須先行將憑證進行安裝後,才能接續對 ActiveX 程式進行簽署。

1. 匯入憑證:

執行 Test.pfx 檔案進行憑證安裝作業 --> 按 [下一步]

03-01

指定要匯入的檔案位置 --> 按 [下一步]

03-02

輸入申請時所用的 [密碼] --> 按 [下一步]

03-03

選擇 [自動根據憑證類型來選取憑證存放區] --> 按 [下一步]

03-04

完成匯入憑證 --> 按 [完成]

03-05

匯入憑證成功。

03-06

2. 開啟 Signcode.exe 程式:

開始 --> 程式集 --> Microsoft Visual Studio --> Visual Studio Tools --> Visual Studio 命令提示字元 --> 輸入 Singcode.exe 即會跑出以下畫面

02-01

※ Signcode.exe 亦可以指令模式下達,若您有需要請參考 Microsoft MSDN

※ 本文在簽署工具上時使用 Signcode.exe 進行處理,但若您使用更新的版本時 (Ex:.Net 4.0),請改用 Signtool.exe 進行簽署。

3. 檔案選取:

按 [瀏覽] --> 按 [下一步]

02-02

檔案類型選擇 [Cabinet 檔 (*.cab)] --> 選擇 [MyControl.cab] --> 按 [開啟]

03-09

按 [下一步]

03-10

4. 簽署選項:

選擇 [一般] --> 按 [下一步]

03-11

5. 簽章憑證:

按 [從存放區選取]

03-12

選擇第一步驟所匯入之憑證 --> 按 [確定]

03-13

按 [下一步]

03-14

6. 資料描述:

填寫 [描述] --> 按 [下一步]

03-15

7. 加上時間戳記:

勾選 [將資料加上時間戳記] --> 填寫 [時間戳記服務 URL] 為 http://timestamp.verisign.com/scripts/timstamp.dll --> 按 [下一步]

(以上 URL 位置為世界公認的 VeriSign 組織所提供)

02-16

8. 完成數位簽章精靈 --> 按 [完成]

03-17

9. 數位簽章執行成功

02-19

分享