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

  1. 用ActiveXDemo.pvk和ActiveXDemo.spc这两个文件给test.ctl作数字签名

signcode -v ActiveXDemo.pvk -spc ActiveXDemo.spc test.ctl

  1. 把test.ctl移动到受信系统存储区(管理证书)

certmgr -add -ctl test.ctl -s trust

  1. 把ActiveXDemo.cer移动到根系统存储区

certmgr -add -c ActiveXDemo.cer -s root

  1. 用test.pvk和test.spc给ActiveXDemo.cab作数字签名(将证书部署到.cab)

signcode -v test.pvk -spc test.spc EIActive.cab

  1. 检查文件是否通过验证(检查部署证书后的.cab是否正确)

chktrust EIActive.cab

10.如果文件通过了数字签名检测,系统会询问是否安装这个文件,这时候一定要选择安装,整个签名过程才能完成。
技术分享图片
(5-8类似于图形化的运行signcode.exe进行数字签名向导)
signtool具体使用方式参考https://www.cnblogs.com/ytwy/p/5034577.html 在此感谢!
技术分享图片

文章记录比较仓促,不足之处还请指正。

以上是关于ActiveX控件自动更新,数字签名突破IE安全限制的主要内容,如果未能解决你的问题,请参考以下文章

怎么把IE的安全级别调到最低!来个有效的方法!

ActiveX控件在IE8中不起作用

浏览器提示已经阻止此站点以不安全的方式使用ActiveX 控件,怎么解决?

中国银行 密码不能填

是否可以将ActiveX对象标记为安全,以便不需要更改IE设置?

基于MFC的ActiveX控件开发教程------------浏览器插件之ActiveX开发