Activex签名方法和工具技巧(图)

一、给Activex控件加数字签名

由于报表输出模块有用到Activex控件,这种控件对于Windows来说属于未签名控件,而Windows默认的IE设置中对这种未签名控件的访问是禁止的,虽然通过让用户修改自己的IE设置可以访问,但这样每个要访问的用户都需要设置,麻烦,而且也不是很安全,那么通过在服务器端给该Activex控件加上数字签名,就不需要用户修改自己的IE设置,下面就介绍给Activex控件加数字签名的步骤:

首先要有工具包,包括以下几个软件:
makecert.exe  制作cer格式的证书,即X.509证书,同时可以创建私钥
cert2spc.exe  将cer格式证书转换成spc格式证书,即PKCS #7证书
signcode.exe  将证书签署到ocx上去
chktrust.exe  检查签署证书后的ocx是否正确
还有一个certmgr.exe,是管理证书用的

上面这几个软件放在Web文件的Activex文件夹下。

有了上面几个软件,就可以进行签名了:

1.  创建一个自己的证书文件:
点击“开始”-“运行”,如下图

在弹出框中输入cmd

点击确定

通过输入命令转到工具包所在路径,如假设上述工具包放在“I:/work/xsxt/bbsc/”下,则首先转到I盘

然后再转到work下

转到xsxt下

转到bbsc下,按下图输入

下面讲解一下命令:makecert /sv "xsxt.PVK" /n "CN=亿力天龙,E=ljm@tli.com.cn,O=刘建梅" xsxt.cer
这里,xsxt.PVK表示新创建的私人密钥保存文件名
      “亿力天龙”是你想显示的公司名
      xsxt.cer是你创建最后的证书文件名
这些根据你自己的要求填写

输入上述命令回车后,会弹出下图:

在上图中输入私钥密码,点击确定(一定要输入一致,不要出错)后出现下图:

输入和前面一样的密码,再点击确定,出现下图:

上图中如果出现Succeeded则表示创建成功,此时可以进入“I:\work\xsxt\bbsc”下看到xsxt.PVK和xsxt.cer两个文件。

 2.转换cer格式为spc格式(可省略)

回车后出现下图

出现Succeeded则表示成功,此时可以在“I:\work\xsxt\bbsc\”下看到xsxt.spc文件。

3.给ocx进行签名
双击“I:\work\xsxt\bbsc\”下的signcode.exe运行后会出现数字签名向导,出现下图

点击“下一步”,出现下图:

通过“浏览”按钮来选择要签名的Activex控件,该系统的控件是在Web文件的bbsc下的ActiveFormProj1.ocx,所以通过浏览来选择该文件

点击“下一步”,出现下图:

该图出现了签名选项,一种是典型,一种是自定义。选择自定义,这样才能从文件选择证书

从上图中点击“从文件选择”,选择签名制作的xsxt.spc或xsxt.cer文件,此处选择xsxt.cer后出现下图

再点击“下一步”


通过上图中的“浏览”按钮选择前面创建的私钥文件,此处是xsxt.PVK

点击“下一步”,出现下图:

在上图的密码处输入签名设置的密码后点击“确定”

在上图中选择散列算法,一般用md5就可以了,点击“下一步”

直接点击“下一步”,

填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,点击“下一步”


点击“下一步”

点击“完成”

输入签名设置的密码,点击“确定”

表示签名完成。

4.用chktrust检查是否正确

回车后会出现下图:

点击“是”即可。

就这样,得到了一个测试证书,虽然只是一个测试证书,但至少保证这个Activex控件在ie浏览的时候能够弹出来一个窗口,问你是否安装,而不是直接禁止了。


附常见问题解决方案:

1、windows 无法构建申请的证书路径。

解决方案:创建pvk文件时,在makecert 中加上-$ "individual" -r,进行signcode时选择md5,就可以解决!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Activex控件签名工具, 微软提供了两套签名工具, 1)signcode.exe, 从1998年开始使用,随.NET Framework SDK发布。 signcode.exe 数字签名工具 makecert.exe 创建数字证书 cert2spc.exe 将数字证书转化为软件发布者证书格式 2)signtool.exe,随visualstudio 2005及其以后的版本发布。 signtool.exe 数字签名工具 makecert.exe 创建数字证书 cert2spc.exe 将数字证书转化为软件发布者证书格式 pvk2pfx.exe(pvkimprt.exe) 将私有的密匙和软件发布者证书合并为pfx文件,此文件将被signtool.exe使用 上面2中工具的不同是signcode.exe需要输入私有密匙和软件发布者证书(pvk和spc文件),signtool.exe只需要输入由pvk和spc合并产生的一个个人信息交互文件(pfx)。 获得数字证书 数字证书,你可以创建自己的数字证书来测试数字签名的流程,但是正式的软件发布,你需要向可信赖的证书颁发机构购买数字证书和密码,例如你可以向以下的证书机构购买Comodo, Globalsign, Thawte and Verisign。 创建自己的数字证书(用来测试) 使用如下命令来创建自己的数字证书: makecert.exe -sv mykey.pvk -n "CN=Acme Software Inc." mycert.cer你可以将Acme Software Inc.替换为你自己公司的名字。如果mykey.pvk不存在的话,你会要求输入私有密匙的密码,密码可以为空。安全起见最好设置密码,否则别人拿到你的私有密匙后就可以签名了。在上面的命令后,产生了2个文件mykey.pvk和mycert.cer。接下来需要将数字证书(cer)转化为软件发布商证书(spc),命令如下:cert2spc.exe mycert.cer mycert.spc此过程中需要输入私有密匙的密码,创建完成后应该会生成mycert.spc文件,当数字签名时mycert.cer文件是不需要的。 时间戳服务器,你可以选择下列之一, - http://timestamp.verisign.com/scripts/timstamp.dll - http://timestamp.globalsign.com/scripts/timstamp.dll - http://timestamp.comodoca.com/authenticode 1)使用signcode.exe,如下: signcode.exe -t <timestamp URL> -spc mycert.spc -v mykey.pvk "<file to be signed>"进行数字签名的文件可以是.exe, .dll, .ocx 或者是其他的可执行文件。 2)使用signtool.exe,如下: 如果你没有pfx文件,需要使用以下的命令来将pvk和spc文件合并为pfx,如果没有设置密码的话必须使用pvkimprt.exe来合并。pvk2pfx.exe -pvk mykey.pvk -pi <password> -spc mycert.spc -pfx mycert.pfx -po <password>pvkimprt.exe -pfx mycert.spc mycert.pvksigntool.exe sign /f mycert.pfx /p <password> /t <timestamp URL> /v "<file to be signed>" 以下是使用signtool.exe签名的一个实例: signtool.exe sign /f mycert.pfx /p <password> /t <timestamp URL> /v "<file to be signed>"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值