ActiveX控件自动更新,数字签名突破IE安全限制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveX控件自动更新,数字签名突破IE安全限制相关的知识,希望对你有一定的参考价值。
前段时间工作上实现了一个IC卡读卡器IE浏览器插件,最近新需要实现控件自动更新,于是研究一番~~
打包成cab文件实现自动更新
ocx控件的自动更新可以通过html中object对象的codebase属性实现版本监测,#前面是新版本cab文件位置,后面是新版本号
突破IE的安全限制需要数字签名,微软的数字证书是需要付费的,此处自己制作一个数字签名证书,安装控件的时候同时安装好证书以便浏览器能正确识别控件发布者,解除浏览器安全限制
1.打包成cab
编写inf文件
跟生成的ocx控件文件放置到同一个目录
执行运行命令iexpress打开windows自带cab打包工具向导
生成EIActive.cab文件
打包工具具体使用方式参考http://www.cnblogs.com/rushoooooo/archive/2011/06/22/2087542.html 在此感谢!
2.数字签名
网上下载signtool.rar并解压,进入DOS系统,通过cd命令进入到解压后的文件夹下面(“cd %path%\signtool\”),并将刚才生成的ActiveXDemo.cab拷贝到当前m目录下
1.创建证书文件
进入到上面的目录后,输入以下命令:
makecert -sv ActiveXDemo.pvk -r -n "CN=公司名称**" ActiveXDemo.cer
利用MakeCert生成一个 证书.cer和一个私钥.pvk,同时创建私钥和公钥
2.转换证书
cert2spc ActiveXDemo.cer ActiveXDemo.spc
用Cert2Spc将.cer文件转换成为PKCS #7软件发布Certificate(.spc文件)
3.创建另外一个自签名证书,叫test.cer
makecert -sv test.pvk -r -n "CN=公司名称**" test.cer
cert2spc test.cer test.spc
4.从test.cer创建test.ctl文件
makectl test.cer test.ctl
- 用ActiveXDemo.pvk和ActiveXDemo.spc这两个文件给test.ctl作数字签名
signcode -v ActiveXDemo.pvk -spc ActiveXDemo.spc test.ctl
- 把test.ctl移动到受信系统存储区(管理证书)
certmgr -add -ctl test.ctl -s trust
- 把ActiveXDemo.cer移动到根系统存储区
certmgr -add -c ActiveXDemo.cer -s root
- 用test.pvk和test.spc给ActiveXDemo.cab作数字签名(将证书部署到.cab)
signcode -v test.pvk -spc test.spc EIActive.cab
- 检查文件是否通过验证(检查部署证书后的.cab是否正确)
chktrust EIActive.cab
10.如果文件通过了数字签名检测,系统会询问是否安装这个文件,这时候一定要选择安装,整个签名过程才能完成。
(5-8类似于图形化的运行signcode.exe进行数字签名向导)
signtool具体使用方式参考https://www.cnblogs.com/ytwy/p/5034577.html 在此感谢!
文章记录比较仓促,不足之处还请指正。
以上是关于ActiveX控件自动更新,数字签名突破IE安全限制的主要内容,如果未能解决你的问题,请参考以下文章
浏览器提示已经阻止此站点以不安全的方式使用ActiveX 控件,怎么解决?