2009年3月12日 星期四

[Plugin] 如何為你的 ActiveX 元件 (cab 檔) 加入數位簽章 -- signtool

簽名 (圖片來源)

現在詐騙集團那麼多, 如何讓客戶可以放心他們下載的軟体, 而且確定沒被改過.

你需要的技術是數位簽章.

事實上, 如果你開發的是要賣的產品, 那麼這份文件所帶給你的知識就是必要的. 否則沒人敢下載你的軟体, 而且 IE 也會對沒經簽章的元件進行各式各樣的限制.

我保證我們不會講數學. 事實上只需要知道如何操作 signtool 指令.

工具

Windows SDK 下載 (選 Microsoft Windows SDK Update for Windows Vista and .NET Framework 3.0)

最簡單的範例 (完整說明:SignTool)

-------------------------------------------------------------------------------------

"C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\signtool.exe" sign /f 你的certificate檔 /p 密碼 /t http://timestamp.verisign.com/scripts/timstamp.dll /v "要被 signed 的檔案"

-------------------------------------------------------------------------------------

別怕, 其實只要複製然後貼上, 接下來把三項訊息換成你的就可以了.

1. certificate檔. 如: mycern.pfx
(你可以用 PVK2PFX.exe 將 pvk 轉成 pfx)

2. 密碼. 如: 12345

3. 要被 signed 的檔案. 如: jing.ocx

開始為我們的 cab 加入數位簽章 (三步驟完成)

---- makecab.bat by Jing---

::Step 1: 對 ocx 進行數位簽章
:: 如果不 sign ocx, 則在 IE 中的管理附加元件中發行者選項會出現
:: (尚未確認) 的訊息.
:: 就算你已經 sign cab 檔了
@echo sign ocx

"C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\signtool.exe" sign /f Jing的pfx 檔 /p 密碼/t http://timestamp.verisign.com/scripts/timstamp.dll /v "Jing.ocx"

:: Step 2: 建立 cab 檔: Jing.cab
:: 你不能用 -p 的方式建立 cab, 否則當安裝時, 會找不到子目錄裡面的檔案
@echo Step 2: make cab
"C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\cabarc.exe" -m LZX:21 -r -s 6144 n Jing.cab Jing.ocx Jing.inf a.dll b.dll c.dll plugins\*.dll resources\*

:: Step 3: 對 Jing.cab 進行數位簽章
@echo Step 3: sign cab file
"C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\signtool.exe" sign /f Jing的pfx 檔 /p 密碼 /t http://timestamp.verisign.com/scripts/timstamp.dll /v "Jing.cab"

---- end of makecab.bat ---

在人生的旅途中, 我好希望有人能幫我. 但是我唯一能保證的是我可以幫助別人.

希望對你有幫助.

by Jing.

相關文章

1. [Plugin] ActiveX 元件版本問題, 2009/3/2.

2. [C++] 動手幫自己的 ActiveX 元件加 method, 2008/11/12.

3. [Plugin] 如何寫一個最簡單的 inf 安裝檔, 2008/11/9.

4. [Java] 如何使用數位簽章的功能, 2008/7/6.

5. 井民全, "[軟体] 如何產生 certification 文件, 用來 sign 你的軟体, " http://mqjing.blogspot.com/2009/05/certification-sign.html, 2009/5/1.

4 則留言:

  1. Hello Jing,目前我正在接觸activeX,也遇到了數位簽章的問題,看到您的文章有如春雨阿~想跟Jaing請教一下:目前我以製作出.ocx .cab,在您的文章中說需要certificate檔,請問這要如何產生?

    回覆刪除
  2. 也不知道為什麼
    我在google搜尋
    visual studio 2008 cab檔關鍵字
    前幾項找到了"井民全觀點"
    無意識的點下去,想想google真貼心,多出了搜尋家族的淺意識心理功能 XD

    學長,我是phan :)

    回覆刪除
  3. 哈! 沒想到大家還可以用 Google 當 "中華" 的家族聯絡簿.

    一開始沒有認出你,讓你失望了, 哈.
    是學長的不是. 很高興又與你取得聯繫. ^_^

    Codex 家族也該聚會了. 不知道用這樣的方式, Codex 會不會搜尋的到? ^_^

    回覆刪除