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 在此感谢!

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

原文地址:http://blog.51cto.com/5460095/2072623

时间: 2024-10-03 21:31:43

ActiveX控件自动更新,数字签名突破IE安全限制的相关文章

IE11使用 ActiveX 控件

解决方案: ActiveX 控件 ActiveX 控件是一些小应用,网站可以使用这类小应用提供视频和游戏等内容. 浏览 Web 时,你也可以使用这些小应用与工具栏和股票行情等内容进行交互. 但是,这些应用有时可能出现问题,或者向你提供不需要的内容. 某些情况下,这些应用可以用来从你的电脑收集信息.破坏电脑上的信息.在未获得你同意的情况下在你的电脑上安装软件或允许其他人远程控制你的电脑. ActiveX 筛选 Internet Explorer 中的 ActiveX 筛选可防止网站安装和使用这些应

ActiveX控件打包成Cab置于网页中自动下载安装 (转)

[背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件(test.ocx)放在本机的%system%/system32下,然后运行DOS工具里面运行regsvr32 test.ocx命令进行注册.但如果真是这么去做的话,那么代表着你处于危险之中了,因为您是通过让用户自己去部署设置环境来达到你的目的,这就失去软件项目本身所存在的价值.那么面对这种情况,我们应该如何解决呢

使用C#开发ActiveX控件(新)

前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件. 虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使用这种技术,因为该技术存在明显的局限,即需要浏览器端安装.NET Framework(版本取决于开发Ac

C#制作ActiveX控件及部署升级(摘自网络)

使用C#开发ActiveX控件 控件开发.制作CAB包.签名.部署 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件. 虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使用这种技术,因为该技术存在明显的局限,即需

ActiveX控件(MFC篇)

目录 第1章 VC++6.0创建控件    1 1.1 目标    1 1.1.1 方法    1 1.1.2 属性    1 1.1.3 事件    1 1.2 创建项目    2 1.3 项目结构    6 1.3.1 COM接口    6 1.3.2 COM类    7 1.3.3 属性页    7 1.3.4 应用程序类    8 1.3.5 注册与注销    8 1.4 方法    9 1.4.1 增加    9 1.4.2 删除    11 1.5 属性    12 1.5.1 Te

C#实现ActiveX控件开发与部署

现在,我们手里已经有了这个控件包:QRCode.cab,下面我们编写一个测试的网页 <html> <head> <title>无标题页</title> <script type="text/javascript" language="javascript"> function Test() { qrcodeocx.DecodeQRCode("@UEsDBBQAAAAIADWPjj3wRxgnaAA

基于MFC的ActiveX控件开发 (转)

ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的:一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++类中,开发者通过继承这些类得到COM支持功能.MFC为广大VC程序员所熟悉,易于上手学习,但缺点是MFC封装的东西比较多,因此用MFC开发出来的控件相对会比较大,因此比较

ActiveX控件资料

Visual Studio 2008(c#)开发ActiveX控件及制作CAB包总结(1) 分类: C#2011-05-27 15:50 403人阅读 评论(0) 收藏 举报 c#stringhookserver测试xhtml 1.开发及测试环境: (1)开发环境: Visual Studio 2008 SP1 cabsdk(下载地址:http://support.microsoft.com/kb/310618) (2)测试环境: Windows Server 2003 R2 SP2 IE6 2

ActiveX控件(ATL篇)

目录 第1章 VC++6.0创建    2 1.1 目标    2 1.2 创建项目    2 1.3 增加COM类    4 1.4 属性    7 1.5 事件    8 1.6 实现连接点    9 1.7 编码    11 1.7.1 增加成员变量    11 1.7.2 初始化成员变量    11 1.7.3 完成属性赋值代码    11 1.7.4 完成控件绘制代码    11 1.7.5 响应鼠标左键按下消息    13 1.7.6 修改DllUnregisterServer