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