给通过IE自动安装的CAB包进行数字签名及实现分发的过程(

   
   
  工具包包括以下几个软件:  
  makecert.exe     制作cer格式的证书,即X.509证书,同时可以创建私钥  
  cert2spc.exe     将cer格式证书转换成spc格式证书,即PKCS   #7证书  
  signcode.exe     将证书签署到ocx上去  
  chktrust.exe     检查签署证书后的ocx是否正确  
  还有一个certmgr.exe,是管理证书用的。可以从这里面导出root.cer来,  
  网上很多文章写到这个证书,但是在VC的安装盘中却找不到。其实,没  
  有也没关系的。这几个软件可以从VC的安装盘中找到。  
   
  下面是具体的步骤:  
  1、创建一个自己的证书文件:  
  makecert   /sv   "Record.PVK"   /n   "CN=DreamCaptial"   dream.cer  
  这里,Record.PVK表示新创建的私人密钥保存文件名  
              DreamCaptial是你想显示的公司名  
              dream.cer是你创建最后的证书文件名  
  这些根据你自己的要求填写,最后得到Record.PVK和dream.cer两个文件。  
  其中,运行过程中需要输入私人密钥的保护密码,一定要输入一致,不要  
  出错。  
   
  2、转换cer格式为spc格式(可以省略)  
  cert2spc   dream.cer   dream.spc  
  得到dream.spc文件。  
   
  3、用VS6工具中的   Package   &   Deployment   Wizard   生成internet分发的CAB包,同时生成分发代码(.htm,其中包含使IE可以自动下载安装包的代码)。现在得到了2个文件DataTransfer.CAB和DataTransfer.htm。  
  .htm中包含类似如下的代码:  
  <OBJECT   ID="DataExchange"   CLASSID="CLSID:B215C664-978A-46A6-B766-5D5FDEE7586D"   CODEBASE="http://192.168.42.133/DataTransfer.CAB#version=1,0,0,0"></OBJECT>  
  注意:一定要写上"http://192.168.42.133/",有时程序不给生成,真正发行时最好使用url。  
   
  4、给CAB文件签名  
  运行signcode,命令行的我没有试验通过,我是通过界面实现的。  
  signcode运行后会出现数字签名向导,首先选择DataTransfer.CAB,  
  下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,  
  这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是  
  选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散  
  列算法,一般用md5就可以了,下一步是选择其他证书,直接下一步,  
  填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,  
  再下一步是加盖时间戳,我不会,直接下一步就完成了。  
   
  5、用chktrust检查是否正确  
  chktrust   -v   DataTransfer.CAB  
   
  6、将签名后的DataTransfer.CAB和DataTransfer.htm复制到IIS的某个目录下。  
   
  7、在IE中打开DataTransfer.htm文件进行测试。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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>"

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值