前言
这几天一直在钻研ActiveX控件,后期的OCX文件打包却让人纠结。
一、用于将ActiveX控件进行打包的工具
makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥和公钥。
cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书。
iexpress.exe windows提供的一个向导式CAB制作工具
signcode.exe 将证书签署到ocx上去。
chktrust.exe 检查签署证书后的ocx是否正确。
certmgr.exe 是管理证书用的。
二、制作inf文件
这里以ActiveX.ocx、ActiveX.dll为例
[version]
signature=“$CHICAGO$”
AdvancedINF=1.0
[Add.Code]
ActiveX.ocx=ActiveX.ocx
ActiveX.dll=ActiveX.dll
[ActiveX.ocx]
file=thiscab
clsid={794854D8-206D-40CF-98E9-8E117BA0EEEB}
FileVersion=1,0,0,0
RegisterServer=yes
[ActiveX.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=1,0,0,0
三、制作CAB文件
进入CMD键入iexpress显示如下界面:
选“Create new Self Extraction Directive file”, 点“下一步”,出现如下框:
选择“Create compressed files only(ActiveX Installs)”,点击下一步,出现如下框,点Add,添加INF文件中标注的所有文件:
点击下一步,点击Browse,选择ActiveX.CAB文件存放并命名CAB文件名,此文件名在jsp中使用,并且要选中 “Store files using long Name inside Package”
点击下一步
选择“Don't save”, 一直点下一步,直到完成,最后会出现一个ActiveX.CAB文件,到这CAB文件打包完成。
四、自制数字证书
(1)用CMD进入到控件所在的目录;
(2)创建PVK文件(私人密匙文件),在命令行中输入“makecert -sk ActiveX ActiveX.pvk -n CN=XXXXXXX公司”,然后回车
(3)创建CER文件(公司证书),在命令行中输入“makecert -sk ActiveX.pvk ActiveX.cer”,然后回车,在工作目录下会出现一个安全证书;
(4)创建SPC测试软件出版商证明书,在命令行中输入“cert2spc ActiveX.cer ActiveX.spc”,然后回车
(5)在CMD中运行signcode,
(6)文件名选ActiveX.CAB(即你自己的CAB文件)
(7)选择好ActiveX.CAB包后单击“下一步(N)”按钮,在选择想要的签名类型里选择“自定议(C)”并单击“下一步(N)”按钮
(8)单击“从文件选择(F)”按钮,选择刚刚制作的ActiveX.cer
(9)单击“下一步(N)”按钮,然后选择“CSP中的私钥(K)”。
(10)单击“下一步(N)”按钮,然后在散列算法中选择“shal”,并单击“下一步(N)”按钮
(11)在“证书路径中的证书”中选择“证书路径中的所有证书,包括根证书(C)”,在“其它证书(可选)”中选择“包括在以下PKCS #7 证书(.p7b)文件中的证书(P):”,并单击“浏览(R)…”按钮选择ActiveX.spc文件,选择完后单击“下一步(N)”按钮
(12)接下来在弹出的“数据描述”窗口中输入公司的名称和网址并单击“下一步(N)”按钮
(13)到这基本上就已经完成了,下边那个时间戳直接略过就行了。
终于完了。