老早就想使用ACTIVEX,但是一直由于不知道怎么签名,所以一直用不起来。偶然见看到了两篇文章,抱着尝试的态度试用了以下,竟然签名成功,开心一下!
以下是两篇文章:
ActiveX控件打包成Cab置于网页中自动下载安装
http://www.javaeye.com/topic/110834
Delphi 发布ActiveX控件 数字签名 CAB Cer
http://www.yryz.net/blog/article/Delphi/88.htm
第一篇文章配有图片,比较好理解,但是尝试了以下签名不了,虽然根据上面一步一步的做下来,提示签名成功了,但是系统还是认为没有签名。估计是签名的程序是比较老的,现在的操作系统不认了。
第二篇文章虽然只有文字,但是有了第一篇的整体认识,再研究下去就很方便了。但是其中有几个地方有错误,经过修改,最后终于配置成功。
下面是我的步骤:
1.下载签名工具,这个很重要,两篇文章都有下载连接,并且都能用,但是第一篇下载的东西不能用,第二篇的是好用的。
2.解压签名工具:
3.启动COM窗口,设置路径
set path=%path%;D:\Nouse\ActiveXTest\u2009930222615\SignTool
4.到OCX文件所在的路径
cd: D:\Nouse\ActiveXTest\u2009930222615\hlca2
5.创建HlCaProj.inf
[version]
signature="$CHINA$"
AdvancedINF=1.0
[Add.Code]
HlCaProj.ocx=HlCaProj.ocx
[HlCaProj.ocx]
file=thiscab
clsid={1523D770-1A41-4A7A-9D2E-C17108F1045E}
FileVersion=1,0,0,0
RegisterServer=yes
6.创建CAB
cabarc.exe -s 6144 N HlCaProj.cab HlCaProj.ocx HlCaProj.inf
7.根据第二篇的步骤生成证书
命令如下:
makecert -sv CustForm.pvk -r -n "CN=A公司" CustForm.cer
cert2spc CustForm.cer CustForm.spc
makecert -sv test.pvk -r -n "CN=A公司" test.cer
cert2spc test.cer test.spc
makectl test.cer test.ctl
signcode -v CustForm.pvk -spc CustForm.spc test.ctl
certmgr -add -ctl test.ctl -s trust
certmgr -add -c CustForm.cer -s root
这样就生成
8.签名
运行signcode.exe
OK,搞定。注意这里选择文件的时候都选择test相关的文件。
9.验证
chktrust HlCaProj.cab
说明签名成功。