怎样给 ActiveX 控件签名并打包发布
转载自:http://www.55055.com/blog/user1/1/archives/2007/20071202322.html
必备工具:
CabArc.Exe
Cert2Spc.Exe
makecert.exe
SetReg.Exe
signtool.exe (或者 signcode.exe)
以及相关动态库,以上文件可到微软网站下载:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm?p=/msdownload/platformsdk/sdkupdate/SDKInfo.htm
安装 Internet Development SDK 后,
第一步 建立一个 .inf 文件,样式如下:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
time.ocx=time.ocx
msvcrt.dll=msvcrt.dll
mfc42.dll=mfc42.dll
olepro32.dll=olepro32.dll
[time.ocx]
file-win32-x86=thiscab
clsid={DCF0768D-BA7A-101A-B57A-0000C0C3ED5F}
FileVersion=1,0,0,0
;DestDir=11 ;***
RegisterServer=yes
[msvcrt.dll]
FileVersion=4,20,0,6164
hook=mfc42installer
[mfc42.dll]
FileVersion=4,2,0,6256
hook=mfc42installer
[olepro32.dll]
FileVersion=4,2,0,6068
hook=mfc42installer
[mfc42installer]
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
run=%EXTRACT_DIR%\mfc42.exe
DestDir 可以=10 :Windows 目录,
11 :Windows\System(32) 目录,
空 :Occache directory
第二步 将 ActiveX 控件及 .inf 文件打包进 .cab,命令如下:
cabarc.exe -s 6144 N yourActiveX.cab yourActiveX.ocx yourActiveX.inf
第三步 给 .cab 文件签名
1. setreg 1 true
2. makecert newCert.cer -sv privatekey.pvk
生成 newCert.cer 和 privatekey.pvk 两个文件
3. Cert2Spc newCert.cer newCert.spc
4. signtool signwizard
有图形界面的签名向导,按提示指定有关文件路径即可,其中的描述是控件的描述。
Comodo: http://timestamp.comodoca.com/authenticode
GeoTrust/TrustCenter: http://www.trustcenter.de/codesigning/timestamp
2。去http://www.globalsign.net/ 申请DEMO版的证书,只能用一个月,不过是全球的,不错了。一月换一个吧。^^
3。根据提示 一共有8步来完成申请(其中大部分NEXT即可,其中要去收2次邮件,第2次邮件就发给你证书了)。
4。按照PackageForTheWeb 的提示完成制作你的CAB,他上面要求数字证书保护的时候可以不选。
5。打开 signcode.exe(这个程序装完PackageForTheWeb在他的安装目录下就有),按照提示,选择到你刚才申请的证书,next,最后一步要选择时间戳服务器,这里有个免费的:http://timestamp.verisign.com/scripts/timstamp.dll 写上去就完了,这样就完成了签名。
好了。现在一个带数字签名的CAB文件已经制作完成,在IE里不会出现不安全的控件,无法安装的现象了。
赶快自己去测试下吧。
小技巧:
Q:如何删除已经安装了的CAB内的控件。
A:1。找到主要的OCX或者DLL文件,REGSVR32 xxx.ocx /u 卸载这个DLL
2。到C:\WINDOWS\Downloaded Program Files 下删除已经安装过的控件。就会出现再次安装了。
从 双证书签名指南 和 单证书签名指南 可以看出:单证书的签名过程要比双证书的简单。所以,如果您想把双证书文件 .pvk 和 .spc 转换成一个 .pfx 格式证书文件,以简化签名过程和方便导入到 USB Key 中实现更加安全的签名管理,请参考本转换指南。而有些用户可能需要使用命令行方式来实现代码签名,即需要把 .pfx 格式签名证书文件转换成两个签名证书文件 .pvk 和 .spc ,也请参考本转换指南。
WoTrust代码签名中级根证书为: WoTrust Code Signing Authority
(3) 在 DOS 状态下,进入保存两个签名证书文件 mycert.pvk 和 mycert.spc 的目录,请键入命令:

浙公网安备 33010602011771号