OCX做带数字签名的CAB文件

做inf文件
    建一个default.INF文件,写库的依赖,要做的事情。例子如下:

[version]

signature="$CHICAGO$"

AdvancedINF=2.0

[Add.Code]

ActiveX.ocx=ActiveX.ocx
a.dll=a.dll
b.dll=b.dll

[ActiveX.ocx]
file-win32-x86=thiscab
clsid={BF31EF92-1CFF-428A-AC60-28E065AF5E12}
FileVersion=1,0,0,1
RegisterServer=yes
DestDir=11

[a.dll]
file-win32-x86=thiscab
DestDir=11

[b.dll]
file-win32-x86=thiscab
DestDir=11

[RegisterFiles]

%11%\ActiveX.ocx

脚本解释如下:
[version]
内容为固定。
[Add.Code]
,前面是要下载的文件名,后面是对应这个文件的区域名,可以是任何名字,不过一般都是和文件的名字相同,这样方便维护。
[ActiveX.ocx]
区域中的第一个file值告诉ie到哪里去得到这个ocx,file一共包括三个部分,第一部分是file,这个永远都是这样的;第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC OX了;第三部分是CPU类型,比如说x86、mips等,file的值可以取三个:一个URL、ignore和thiscab,如果是URL则说明到URL所在的位置去下;如果是ignore说明对于这种OS和CPU,不需要下载这个文件;如果是thiscab就在当前的cab文件中了。 
接下来是clsid,需要填写该ocx的class guid。
接下来是FileVersion,说明了ocx的版本号。
接下来是RegisterServer,可以取两个值yes和no,如果为yes则说明ie要注册该ocx,如果是no就不必了; 
再下来是DestDir,它的值是ocx将要存到本地硬盘的位置,如果它的值是10,则将ocx放到\Windows或者\WinNT下;如果是11,则放到\Windows\System或者 \WinNT\System32下;如果是空(就是没有值)则会放到\Windows或者\WinNT下的Downloaded  Program  Files目录下; 
[a.dll]
参见[ActiveX.ocx]的解释,这里不需要clsid。
做CAB文件
打开windows/system下的iexpress.exe,点“创建新的自解压缩指导文件”,“下一步”,点“仅创建压缩文件(ActiveX安装)”,“下一步”,点“添加”,选在需要打包的OCX,DLL,INF文件,“下一步”,点“浏览”,为CA起个名字,如“X.CAB”,选中第二个“在软件包...”,“下一步”,点“不保存”,点“下一步”,直到“完成”。
制作签名文件
1》制作数字证书,在VC安装目录下找makecert.exe,在命令行下执行
makecert -ss name -n “CN=公司名” -sv d:\pos.pvk -r d:\pos.cer
    makecert.exe有很多命令参数,这句话的解释如下:
sk-表示主题的密钥容器位置,
ss-主题的证书存储名称,
 n-证书颁发对象,
r-证书存储位置,
-sv 导出私钥文件(为了数字签名使用)。
注意:这个时候会让输入三次密码,三次要完全一致。
2》使用Cert2Spc生成spc发行者证书:cert2spc d:\pos.cer d:\pos.spc

对CAB文件进行签名
3》在VC安装目录下找signcode.exe(下载地址:http://download.csdn.net/detail/evsqiezi/7839857),双击运行。

先选择要签名文件,下一步,选择“自定义”, 下一步,选择“从文件选择”,添加刚生成的pos.spc证书,下一步,选择刚生成的私钥pos.pvk,再下一步, 输入密码,下一步任选一个加密算法,在“数字签名先导页面”保持默认,再一直下一步。添加时间戳,在时间戳填入http://timestamp.verisign.com/scripts/timstamp.dll,再下一步完成。
这样就对CAB文件进行了签名,但是这个时候点击这个文件会发现证书不可用,原因是证书没有安装。
文件属性->数字证书->详细信息-〉查看证书-〉安装证书,进入安装证书向导,存放区域选择“受信任的根证书颁发机构”,点击完成即可。

导入证书

接下来,我们需要把数字证书(cer文件)安装到根系统存储区,“运行”执行如下命令: xxx\certmgr -add -c printocx.cer -s root

会有一个提示对话框,点确定即可。

前面所说的所有内容,都是基于买不起付费数字证书的基础上,如果你们公司愿意买数字证书的话,那是最好不过的,否则只能用这样的笨办法给用户最简单的体验。当然,也可以让用户修改IE设置和安全级别的话。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值