當取得到 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 檔安以供安裝,以下為作業流程:
● 於 DOS Mode 下達以下語法後即可得到一個 CAB 檔案:
cabarc n MyControl.cab Install.inf setup.exe MyControlInstaller.msi
檔案總管中目前是沒有 CAB 檔案:
下達上述指令:
檔案總管中已看到產生的 CAB 檔案:
四、進行憑證簽署:
由於 ActiveX 控制項的控制權很大,為了避免使用者誤安裝帶有病毒或後門程式的ActiveX 元件,IE 要求安裝時必須經過簽署,凡是未簽署的 ActiveX 控制項,IE 內定都是不能下載安裝的,即便是在中低等級的情況下。
所謂簽署,就是在檔案上加上開發者的憑證(包含了認證單位資訊、開發者資訊、開發者公鑰)、以及安裝檔的數位簽章與時間戳記(以開發者私鑰加密,確認安裝檔未被修改)。當IE要下載安裝元件前,會先將安裝檔裡的數位簽章與時間戳記傳送給認證單位,確認資訊無誤後,才提示使用者是否要安裝。
常見的認證單位有Verisign、Thawte…等。兩者的申請流程都差不多,必須填寫申請者的名字、電話、住址、Email、公司資訊,認證單位會再連絡並確認申請者的身份後,才會簽發憑證檔與私鑰檔。如果是國內公家單位的開發商,其實也可跟公家單位的認證中心申請憑證與私鑰,效果也是一樣的。
※ 在本章前,已介紹了如何自建憑證伺服器的相關系列文章,故在本文將跟各位說明如何運用自建的環境進行憑證的簽署~~
五、簽署 Windows 2003 所產生之憑證:
1. 開啟 Signcode.exe 程式:
開始 --> 程式集 --> Microsoft Visual Studio --> Visual Studio Tools --> Visual Studio 命令提示字元 --> 輸入 Singcode.exe 即會跑出以下畫面
※ Signcode.exe 亦可以指令模式下達,若您有需要請參考 Microsoft MSDN。
※ 本文在簽署工具上時使用 Signcode.exe 進行處理,但若您使用更新的版本時 (Ex:.Net 4.0),請改用 Signtool.exe 進行簽署。
2. 檔案選取:
按 [瀏覽] --> 按 [下一步]
檔案類型選擇 [Cabinet 檔 (*.cab)] --> 選擇 [MyControl.cab] --> 按 [開啟]
按 [下一步]
3. 簽署選項:
選擇 [自訂] --> 按 [下一步]
4. 簽章憑證:
按 [從檔案選取]
檔案類型選擇 [X.509 憑證 (*.cer;*.crt)] --> 選擇 [Test.cer] --> 按 [開啟]
檢視憑證資訊後,按 [下一步]
5. 私密金鑰:
按 [瀏覽]
檔案類型選擇 [私密金鑰 (*.pvk)] --> 選擇 [Test.pvk] --> 按 [開啟]
按 [下一步]
輸入申請時所用的 [密碼] --> 按 [確定]
6. 雜湊演算法:
選擇 [sha1] --> 按 [下一步]
7. 其他憑證:
保持預設選擇 --> 按 [下一步]
8. 資料描述:
填寫 [描述] --> 按 [下一步]
9. 加上時間戳記:
勾選 [將資料加上時間戳記] --> 填寫 [時間戳記服務 URL] 為 http://timestamp.verisign.com/scripts/timstamp.dll --> 按 [下一步]
(以上 URL 位置為世界公認的 VeriSign 組織所提供)
10. 完成數位簽章精靈 --> 按 [完成]
輸入申請時所用的 [密碼] --> 按 [確定]
11. 數位簽章執行成功
六、簽署 Windows 2008 所產生之憑證:
由於 Windows 2008 不再提供匯出 pvk 檔,故必須先行將憑證進行安裝後,才能接續對 ActiveX 程式進行簽署。
1. 匯入憑證:
執行 Test.pfx 檔案進行憑證安裝作業 --> 按 [下一步]
指定要匯入的檔案位置 --> 按 [下一步]
輸入申請時所用的 [密碼] --> 按 [下一步]
選擇 [自動根據憑證類型來選取憑證存放區] --> 按 [下一步]
完成匯入憑證 --> 按 [完成]
匯入憑證成功。
2. 開啟 Signcode.exe 程式:
開始 --> 程式集 --> Microsoft Visual Studio --> Visual Studio Tools --> Visual Studio 命令提示字元 --> 輸入 Singcode.exe 即會跑出以下畫面
※ Signcode.exe 亦可以指令模式下達,若您有需要請參考 Microsoft MSDN。
※ 本文在簽署工具上時使用 Signcode.exe 進行處理,但若您使用更新的版本時 (Ex:.Net 4.0),請改用 Signtool.exe 進行簽署。
3. 檔案選取:
按 [瀏覽] --> 按 [下一步]
檔案類型選擇 [Cabinet 檔 (*.cab)] --> 選擇 [MyControl.cab] --> 按 [開啟]
按 [下一步]
4. 簽署選項:
選擇 [一般] --> 按 [下一步]
5. 簽章憑證:
按 [從存放區選取]
選擇第一步驟所匯入之憑證 --> 按 [確定]
按 [下一步]
6. 資料描述:
填寫 [描述] --> 按 [下一步]
7. 加上時間戳記:
勾選 [將資料加上時間戳記] --> 填寫 [時間戳記服務 URL] 為 http://timestamp.verisign.com/scripts/timstamp.dll --> 按 [下一步]
(以上 URL 位置為世界公認的 VeriSign 組織所提供)
8. 完成數位簽章精靈 --> 按 [完成]
9. 數位簽章執行成功