轉帖|其它|編輯:郝浩|2010-10-18 13:38:14.000|閱讀 797 次
概述:本文主要介紹如何為MFC和ATL控件創建簽署的CAB文件,希望對大家有幫助。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
如果您計劃通過Internet銷售 MFC控件和ATL 控件,您應該將其打包成簽署的小巧(Cabinet -CAB) 文件。簽署文件確保用戶下載您的控件時源代碼是安全的。一個CAB文件包含一個您的控件及其安裝信息(比如,都需要哪些動態鏈接庫DLL和OCX一起安裝)的壓縮版本。
創建和簽署CAB文件的工具包含于Visual C++ 5.0 光盤中的 CAB&SIGN 目錄下面。 該目錄下的公用程序在您安裝Visual C++時并不會自動地一起安裝,因此您必須將CAB&SIGN 目錄下面的內容拷貝到您的硬盤驅動器中。
在簽署文件之前,您需要有一個軟件出版商證明書(Software Publisher Certificate)。您必須向證書發放機構(Certification Authority)申請自己的證書。利用CAB&SIGN目錄下面的工具,您能夠創建一個用于測試的測試證明書,但是該證明書不能用于簽署發售的代碼。有關申請軟件出版商證明書的信息,請參考步驟 1 。
下面是創建簽署CAB文件的步驟 :
1 獲得一個軟件出版商證明書 (您只需要這一次申請就可以永久使用)
2 創建 CAB 文件
3 簽署您的文件
4 將簽署過的 CAB文件嵌入一個Web頁(可選項)獲得一個軟件出版商證明書
在簽署文件之前,您需要有一個軟件出版商證明書(SPC)。為此,您必須向證書發放機構(Certification Authority)提出申請。在申請過程中,您必須生成一個密匙對,并向證書發放機構提供證明信息,比如說您的名字、地址以及公共密匙。而且,您必須作出具有法律約束力的誓言:您不能也將不會發布您知道或者應該知道其中包含了病毒的軟件,或者是惡意破壞用戶的機器或代碼。
有關如何得到軟件出版商證明書更詳盡的信息,請參考Signing Code with Microsofts Authenticode。若要申請該證書,請參考 Digital Certificates for Authenticode ;若要創建一個測試證書來測試簽署文件,請參考Making A Test Software Publisher Certificate.
證書發放機構生成一個符合工業標準X.509證書格式(包含版本3擴展)的軟件出版商證明書 。該證書確定并且包含您的公共密匙,并以證書發放機構存檔作為參考,把一個拷貝以電子郵件的方式返回給您。收到該證書之后,您應該在所有要發布的、用私人密匙簽署的軟件當中,包含一份該證書的拷貝。
獲得一個軟件出版商證明書
您可以使用Visual C++ 5.0 光盤中CAB&SIGN目錄下的 MAKECERT和 CERT2SPC 公用程序,做一個測試軟件出版商證明書。注意,該測試軟件出版商證明書對真正的軟件發布無效,但是能夠被用來測試您代碼的簽署。
比如,要做一個私人密匙文件MYKEY.PVK 和一個公司證書CERT.CER,則運行公用程序MAKECERT,其命令如下:
C:\CAB&SIGN\MAKECERT
-u: MyKey
-n: CN = MySoftwareCompany
-k: MYKEY.PVK CERT.CER
MyKey 是您的密匙名,MySoftwareCompany 是您的公司名。注意公用程序 MAKECERT 在命令行選項中區分大小寫,因此您必須使用小寫的-u、-n以及-k;-n選項的值必須是大寫的CN=。
做一個名為CERT.SPC測試軟件出版商證明書,則運行公用程序CERT2SPC,命令如下:
C:\CAB&SIGN\CERT2SPC C:\CAB&SIGN\ROOT.CER CERT.CER CERT.SPC
注意CERT.SPC文件是利用您剛使用MAKECERT創建的CERT.CER文件以及CAB&SIGN目錄下面的ROOT.CER文件創建的 。
創建一個 CAB文件
這一部分描述如何創建能在互連網上分派ATL和MFC組件的CAB文件。如果您要了解有關CAB文件的更多信息,請參考Cabinet文件參考書目(File Reference),該文件位于平臺軟件開發工具包(Platform SDK,包含在Visual C++ 5.0聯機文檔中)的設置和系統管理服務(Setup and System Management Services)部分的\Setup API\Overview\Cabinet Files目錄下面。
創建一個 CAB文件:
創建一個INF文件。
運行公共例程CABARC(在光盤上的CAB&SIGN目錄中)。例如:
C:\CAB&SIGN\CABARC -s 6144
n MYCTL.CAB NEEDED1.DLL NEEDED2.DLL MYCTL.OCX MYCTL.INF
CABARC 創建了一個名為MYCTL.CAB的CAB文件。
您必須在您的源文件(INF、OCX以及DLL文件)目錄下面運行CABARC。存檔在CAB 文件中的文件需要在命令行列出,次序同它們在INF文件中的完全一致。在上例中,INF文件的列出次序是NEEDED1.DLL,然后 是NEEDED2.DLL,最后是MYCTL.OCX。
-s選項為代碼簽署保留空間。n 命令指定您想創建的是CAB文件。CABARC 命令和選項的說明可以查看,其方式是在命令行鍵入CABARC:
C:\CAB&SIGN\CABARC
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網