OCX数字签名及CAB包发布.docx
《OCX数字签名及CAB包发布.docx》由会员分享,可在线阅读,更多相关《OCX数字签名及CAB包发布.docx(11页珍藏版)》请在冰豆网上搜索。
OCX数字签名及CAB包发布
查了很多文档进行OCX打包的学习,但发现现在WIN7环境不太适用,故写此文,不对请大学指点纠正。
一、打包前工具准备(系统目录及VC2010的目录都能找得到以下exe)
makecert.exe制作cer格式的证书,即X.509证书,同时可以创建私钥和公钥。
cert2spc.exe将cer格式证书转换成spc格式证书,即PKCS#7证书。
iexpress.exewindows提供的一个向导式CAB制作工具
signcode.exe将证书签署到ocx上去。
chktrust.exe检查签署证书后的ocx是否正确。
certmgr.exe是管理证书用的。
二、制作INF文件(RemtCard.dll是我的OCX,我采用ATL+ATLCONTROL工程,非MFCACTIVEX工程,原因clsid工程有3个,我看不出来哪个是,故选用此方式,方便取clsid)
[version]
signature=“$GD$”
AdvancedINF=1.0
[Add.Code]
RemtCard.dll=RemtCard.dll
GND0004.dll=GND0004.dll
GND00001D.dll=GND00001D.dll
[RemtCard.dll]
file=thiscab
clsid={67E0311D-0132-4107-9209-588C00945E73}
FileVersion=1,0,0,0
RegisterServer=yes
[GND0004.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=1,0,0,0
[GND00001D.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=1,0,0,0
三、制作CAB文件
CMD输入iexpress
选“CreatenewSelfExtractionDirectivefile”,点“下一步”,出现如下框:
选择“Createcompressedfilesonly(ActiveXInstalls)”,点击下一步,出现如下框,点Add,添加INF文件中标注的所有文件:
点击下一步,点击Browse,选择RemtCard.CAB文件存放并命名CAB文件名,此文件名在jsp中使用,并且要选中“StorefilesusinglongNameinsidePackage”
选择“Don'tsave”,一直点下一步,直到完成,最后会出现一个RemtCard.CAB文件,到这CAB文件打包完成。
四、自制数字证书
(1)用CMD进入到控件所在的目录;
(2)创建PVK文件(私人密匙文件),在命令行中输入“makecert-skRemtCardRemtCard.pvk-nCN=XXXXXXX”,然后回车(需要注意切换到makecert.exe目录执行)特别注意:
最好按15步命令输入
(3)创建CER文件(公司证书),在命令行中输入“makecert-skRemtCard.pvkRemtCard.cer”,然后回车,在工作目录下会出现一个安全证书;
目录生成文件如下:
(4)创建SPC测试软件出版商证明书,在命令行中输入“cert2spcRemtCard.cerRemtCard.spc”,然后回车
(5)在CMD中运行signcode,
(6)文件名选RemtCard.CAB(即你自己的CAB文件)
(7)选择好RemtCard.CAB包后单击“下一步(N)”按钮,在选择想要的签名类型里选择“自定议(C)”并单击“下一步(N)”按钮
(8)单击“从文件选择(F)”按钮,选择刚刚制作的RemtCard.cer
(9)单击“下一步(N)”按钮,然后选择“CSP中的私钥(K)”。
(10)单击“下一步(N)”按钮,然后在散列算法中选择“shal”,并单击“下一步(N)”按钮
(11)在“证书路径中的证书”中选择“证书路径中的所有证书,包括根证书(C)”,在“其它证书(可选)”中选择“包括在以下PKCS#7证书(.p7b)文件中的证书(P):
”,并单击“浏览(R)…”按钮选择RemtCard.spc文件,选择完后单击“下一步(N)”按钮
(12)接下来在弹出的“数据描述”窗口中输入公司的名称和网址并单击“下一步(N)”按钮
(13)到这基本上就已经完成了,下边那个时间戳直接略过就行了。
(14)可能点击完成,会出现以下错误
(15)解决办法
创建PVK命令时输入:
makecert-$"individual"-r-skRemtCardRemtCard.pvk-nCN=XXXXXXX
选择md5
如果问题还得不到解决,请确认用户管理权限,生成每个文件都需要同样高级管理员生成。