`
marlboro027
  • 浏览: 55205 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

发布ActiveX控件(把ocx做成cab发布) --activex数字签名

    博客分类:
  • ocx
阅读更多
最近我正在研究ActiveX技术。我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序。这个控件产生一个.OCX文件。现在,我需要把这个控件部署在服务器端,在用户浏览网页并选择安装这个控件的时候,用户的IE才会下载、安装并显示这个控件。

    但是我的控件必须作数字签名以后,IE才会下载安装。问题是如何给ActiveX控件作数字签名呢?现将具体步骤与大家分享。

    首先我需要一套做数字签名的工具。如果你没有,可以到以下地址下载:

    http://www.cnblogs.com/Files/babyt/SignTool.rar

    控件的名字是CustForm.ocx。首先,我们需要创建一个.CAB文件用来把所有需要发布的文件压缩在一起。我们需要一起发布的文件是CustForm.lic文件。它是Delphi在我们创建控件工程的时候为我们生成的。如果不发布这个文件,你的控件即使下载安装成功,IE也无法显示它。为了在一个.CAB文件中发布多个文件,我们必须先创建一个.INF文件。一个.INF文件可以告诉IE,它需要下载的文件和在哪里可以得到这些文件。

1. 创建.INF文件

    创建一个.INF文件很简单,用记事本程序编写就可以了。我们把我们的.INF文件取名为GMTestX.inf。因为我们要在.CAB文件中放入GMTest.ocx和GMTest.lic这两个文件,所以我们的.INF文件的内容如下:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[version]
    signature="$CHICAGO$"
    AdvancedINF=2.0
[Add.Code]
    CustForm.ocx=CustForm.ocx
    CustForm.lic=CustForm.lic //如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行
[CustForm.ocx]
    file-win32-x86=thiscab
    clsid={C504DF79-C5EC-4314-AC3E-1F770DB81A01}
    FileVersion=1,0,0,0
    RegisterServer=yes
[CustForm.lic]//如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行
    file-win32-x86=thiscab//如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行
    FileVersion=1,0,0,0//如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    在这个.INF文件的[version]部分有两句代码。signature="$CHICAGO$"表示这个.INF文件和Windows95或其后版本和Windows NT 4.0或其后的版本兼容。AdvancedINF=2.0表示Advpack.dll的版本,IE 4.0或其后版本必须导入这个文件去解析这个.INF文件。在这里要求的版本是2.0。

    至于[Add.Code]部分,其中列出了在一个.CAB文件中需要下载的文件,并把这些文件的详细信息映射到其后对应的各个部分。比如[CustForm.ocx]部分中的信息就是下载CustForm.ocx这个文件的相关信息。

    在[CustForm.ocx]部分的第一句代码告诉IE,CustForm.ocx文件就包含在这个.CAB文件中。第二行注明了这个控件的CLSID号。第三行是控件的版本号。第四行告诉IE需要使用前面的CLSID号来注册这个控件。[CustForm.lic]部分就不多讲了。

2. 创建.CAB文件

    在命令行中输入以下代码把CustForm.ocx、CustForm.inf和CustForm.lic这三个文件添加到一个.CAB文件中,这个文件取名为CustForm.cab:

cabarc.exe -s 6144 N CustForm.cab CustForm.ocx CustForm.inf CustForm.lic

3. 创建证书文件

    在命令行输入以下命令:

makecert -sv CustForm.pvk -r -n "CN=SunStar" CustForm.cer

4. 转换证书:

cert2spc CustForm.cer CustForm.spc

5. 创建另外一个自签名证书,叫test.cer

    在命令行中依次输入以下两条命令:

makecert -sv test.pvk -r -n "CN=SunStar" test.cer

cert2spc test.cer test.spc

6. 从test.cer创建test.ctl文件

makectl test.cer test.ctl

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

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

8. 把test.ctl移动到受信系统存储区

certmgr -add -ctl test.ctl -s trust

9. 把CustForm.cer移动到根系统存储区

certmgr -add -c GMTestX.cer -s root
     
10. 用test.pvk和test.spc给CustForm.cab作数字签名

singcode -v test.pvk -spc test.spc CustForm.cab

11. 检查文件是否通过验证

chktrust CustForm.cab

如果文件通过了数字签名检测,系统会询问是否安装这个文件,这时候一定要选择安装,整个签名过程才能完成。

    执行以上步骤的过程中,有时候需要用户输入密码。用户可以任意选择一个密码,比如12345。

    接下来,我们把一个调用Delphi的Web Deploy命令产生的文件CustForm.htm复制到C:\Inetpub\wwwroot\OurHTML文件夹中,并修改其内容如下:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<HTML>
<H1> 群组配置 </H1><p>
<HR><center><P>
<OBJECT
id =CustForm
   classid="clsid:7E302B32-912F-427B-98D0-03AB15716E81"
   codebase="/OurCAB/CustFormX.cab#version=1,0,0,0"
   width=100%
   height=80%
   align=center
   hspace=0
   vspace=0
  
   <param   name=Invaild         value=Invaild>
    <param   name=wsroot          value=http://192.168.0.56:8080/adms/services/> <!--value={TMPL,OUTPUT,COND}-->
>
</OBJECT>
</HTML>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再将签名的CustForm.cab文件移动到C:\Inetpub\wwwroot\OurCAB文件夹中。

    好了,现在打开IE,在地址栏中输入:http://localhost/OurHTML/CustForm.htm后,IE询问是否下载这个控件,我们选择是,就可以看到我们的ActiveX控件的窗体了。大功告成!

分享到:
评论

相关推荐

    ActiveX控件数字签名与打包成cab置于网页中自动下载安装

    总的来说,通过数字签名和CAB打包,开发者能够提供安全、可靠且易于下载和安装的ActiveX控件,提升用户的在线体验。这个资源集合对那些需要在网页上部署ActiveX控件的开发者来说是宝贵的工具和参考资料。

    将OCX控件打包CAB包并实现数字签名

    "OCX控件的CAB包打包和数字签名" OCX控件是ActiveX控件的一种,通常用于Web开发中。但是,直接在网页上使用OCX控件可能会存在安全问题。为了解决这个问题,可以将OCX控件打包到CAB包中,并对其进行数字签名。下面将...

    VS2008(c#)开发ActiveX控件、访问及制作CAB包总结

    在本文中,我们将深入探讨如何使用Visual Studio 2008 (C#) 开发ActiveX控件,以及如何创建和打包CAB文件,以便在网页中使用和更新。ActiveX技术允许开发者创建可以在多种应用程序中使用的组件,尤其是在网页中通过...

    OCX控件打包成CAB--cab,html文件

    标题 "OCX控件打包成CAB--cab,html文件" 涉及到的是在IT行业中关于ActiveX控件和 CAB( Cabinet)文件的使用,以及如何将这些控件集成到HTML页面中以供JavaScript调用。ActiveX是微软推出的一种技术,允许在Web...

    将ocx打包成CAB控件的工具 makeCAB

    CAB文件是一种压缩格式,用于存储包括OCX在内的各种文件,同时可以包含数字签名,确保文件的安全性。在Web上分发ActiveX控件时,CAB文件可以作为一个单一的下载单元,便于用户安装。 使用`makeCAB`创建CAB文件的...

    ActiveX控件打包成Cab置于网页中自动下载安装参考文档

    ### ActiveX控件打包成Cab并自动下载安装详解 #### 一、概述 在Web开发领域,尤其是在早期的Internet Explorer浏览器中,ActiveX控件被广泛应用于实现客户端功能的扩展,比如实现更复杂的用户交互、文件操作等。...

    网站activex控件ocx打包工具

    网站ActiveX控件OCX是Windows操作系统中一种用于增强网页交互功能的组件,它允许开发者在Internet Explorer浏览器中实现更复杂的功能,如多媒体播放、文件操作等。OCX控件通常由开发人员编写,然后发布给用户安装,...

    把OCX压制成CAB的工具,实现网页自动下载

    这是因为CAB文件支持数字签名,浏览器会检查签名的安全性,然后自动安装签名验证通过的控件。这样简化了用户安装ActiveX控件的过程,提高了用户体验。 4. **安全性考量**:尽管CAB文件提供了自动下载的便利,但也...

    VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

    发布ActiveX控件通常涉及证书的制作和签名。VS2005提供了几个工具,如`makecert.exe`用于创建证书,`cert2spc.exe`将证书转换为SPC文件,以及`signcode.exe`用于对文件进行签名。制作证书的过程包括使用makecert创建...

    把ActiveX打包成CAB用于在网页上发布

    将ActiveX控件打包成CAB( Cabinet)文件是为了更安全、便捷地在网页上发布和安装这些控件。CAB文件是一种特殊的压缩格式,可以包含多个文件和数字签名,确保了用户下载的控件未被篡改。 1. **ActiveX技术**: ...

    ActiveX打包与数字签名

    ActiveX技术是微软在Windows平台上开发的一种组件技术,主要用于网页和应用...总的来说,ActiveX打包与数字签名是开发和分发安全、可靠ActiveX控件的关键步骤,确保了软件组件在Windows环境中的正确运行和用户安全。

    如何发布ActiveX 控件

    为了实现更安全和便捷的ActiveX控件发布,我们可以采用自动下载和安装的方式。这一过程涉及到几个关键步骤: 1. **创建和签名证书**: - 使用`makecert.exe`创建一个cer格式的证书,这是X.509证书,同时生成私钥和...

    vs制作activex控件

    1. 对于安全性和信任,ActiveX控件需要进行数字签名。这需要一个有效的数字证书,可以向权威的证书颁发机构购买,或者使用自签名证书。 2. 使用工具如“signtool”对CAB文件进行签名,确保控件在安装时不会被浏览器...

    ocx制作成cab文件

    当你需要分发或安装OCX控件时,将OCX文件打包成CAB文件是一个常见做法,因为CAB文件可以包含数字签名,确保文件的完整性和安全性。本文将详细介绍如何将OCX文件制作成CAB文件,并解析给定的压缩包文件内容。 首先,...

    SignTool:ocx控件打包成cab

    本篇文章将深入探讨`SignTool`,一个用于数字签名Windows应用程序和组件的工具,以及如何使用它来将OCX(ActiveX控件)打包成CAB( Cabinet)文件,从而简化安装过程。 `SignTool`是微软提供的一个命令行工具,它...

    海康OCX控件.zip

    海康OCX控件是专为开发者设计的一款组件,它由海康威视公司提供,主要用于在各种应用程序中集成视频监控功能。海康威视是一家知名的安防产品供应商,其产品涵盖了视频监控、智能分析等多个领域。这个控件使得开发者...

    ActiveX控件打包成cab教程,手把手教你,完全傻瓜式

    为了解决这个问题,我们可以将ActiveX控件打包成 CAB( Cabinet)文件,这样用户只需下载并运行一个文件,就能自动完成控件的安装和注册。 **必备条件:** 在打包ActiveX控件成CAB文件之前,你需要准备以下几个工具...

Global site tag (gtag.js) - Google Analytics