ActiveX控件签名

poniu_2008 2011-09-26 11:16:16
目前IE对ActiveX控件的限制已经相当严格,如果没有使用合法证书为自己的控件签名,那么无论你的控件功能多么强大,也将毫无用武之地。

签名证书是需要购买的,联系深圳维瑞购买verisign ,thawte 微软代码签名证书,可以享受CSDN 的折扣优惠价格。但我们在开发过程中很可能需要模拟一个安全环境来测试控件,按照普通方法使用makecert命令生成的证书,其根证书是不被信任的,用它来对控件签名,其结果仍然是被IE拦截,因此正确的方法应该是分两步走:先产生自认证证书放入可信任的根证书机构中,然后由此证书颁发子证书来对控件签名,具体方法如下:
1. 在Visual Studio命令行中输入:
makecert -n "CN=TempRoot" -r -sv TempRoot.pvk TempRoot.cer
得到一个自认证证书TempRoot.cert,其密钥文件为TempRoot.pvk
2. 在Visual Studio命令行中输入:
makecert -sk TempCA -iv TempRoot.pvk -n "CN=TempCA" -ic TempRoot.cer TempCA.cer -sr currentuser -ss My
得到一个由刚才TempRoot所颁发的子证书TempCA,且被保存到"个人"证书库中
3. 在Visual Studio命令行中输入:
certmgr
打开证书管理器,可看到"个人"里已经含有TempCA,点击标签页"可信任的根证书机构",点击"导入",将TempRoot.cert导入,这样一来TempCA的证书链就是完整且可信任的了
4. 在Visual Studio命令行中输入:
signtool signwizard
根据签名向导为控件加上TempCA的签名,将控件嵌入html文件,浏览该网页,将会正常显示控件的签名信息,并询问是否安装控件,完成!
...全文
154 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
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 -spc mycert.spc -v mykey.pvk ""进行数字签名的文件可以是.exe, .dll, .ocx 或者是其他的可执行文件。 2)使用signtool.exe,如下: 如果你没有pfx文件,需要使用以下的命令来将pvk和spc文件合并为pfx,如果没有设置密码的话必须使用pvkimprt.exe来合并。pvk2pfx.exe -pvk mykey.pvk -pi -spc mycert.spc -pfx mycert.pfx -po pvkimprt.exe -pfx mycert.spc mycert.pvksigntool.exe sign /f mycert.pfx /p /t /v "" 以下是使用signtool.exe签名的一个实例: signtool.exe sign /f mycert.pfx /p /t /v ""

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧