C# Asp.net Active控件开发全过程

最近在做Active控件的开发,签名高了很久,一直出问题,找了很多网站发现资料都不是全队,当前系统为Win7 系统开发。权当是自己的开发笔记,有问题大家可以一起讨论下,求大家别喷我~~

1. Active 控件的开发 借鉴

http://blog.csdn.net/xiaoao314224236/article/details/18698287 里面介绍你完成你的ACtive 控件,此时你已经生成了控件对应的DLL 文件。

2 .Cab包的发布。

借鉴 http://blog.sina.com.cn/s/blog_46d6c13f0100nr9p.html


二、临时证书的制作及给cab包签名


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


      签名证书是需要购买的,而且价格不菲,但我们在开发过程中很可能需要模拟一个安全环境来测试控件,按照普通方法使用makecert命令生成的证书,其根证书是不被信任的,用它来对控件签名,其结果仍然是被IE拦截,因此正确的方法应该是分两步走:先产生自认证证书放入可信任的根证书机构中,然后由此证书颁发子证来对控件签名,具体方法如下:


      1. 在命令行中输入:


      makecert -n "CN=TempRoot" -r -sv TempRoot.pvk TempRoot.cer


      得到一个自认证证书TempRoot.cert,其密钥文件为TempRoot.pvk

    

      2. 在命令行中输入:


      makecert -sk TempCA -iv TempRoot.pvk -n "CN=TempCA" -ic TempRoot.cer TempCA.cer -sr currentuser -ss My

      3.创建SPC测试软件出版商证明书,在命令行中输入“cert2spc TempRoot.cer TempRoot.spc”,然后回车

      得到一个由刚才TempRoot所颁发的子证书TempCA,且被保存到"个人"证书库中

      4. 执行signcode根据向导加上TempCA的签名,将控件嵌入html文件,浏览该网页,将会正常显示控件的签名信息,并询问是否安装控件,而且不用降低用户浏览器的安全性,完成!:

    5. Signcode 参考http://www.wotrust.com/support/signcode_guide.htm 

微软代码签名证书(.pvk/.spc)签名指南

    本使用指南演示如何使用WoSign代码签名证书来给微软代码签名,Thawte和VeriSign代码签名证书也是使用同样方法,只是使用不同的时间戳URL。

    用户在在线申请代码签名证书时会生成证书私钥文件,如:myCert.pvk,而代码签名证书成功颁发后的证书文件为公钥文件,如:myCert.spc,又称:软件发行证书(Software Publishing Certificate) 。 代码签名证书一般都是采用公钥和私钥分离的两个文件方式,适合于 DOS 命令行方式的代码签名。如果您您希望把代码签名证书导入到Windows证书存储区中,从而简化签名操作,请参考:不同证书格式转换指南

    WoSign代码签名证书的根证书链为: UTN-USERFirst-Object - WoSign Code Signing Authority

    Thawte代码签名证书的根证书链为: Thawte Premium Server CA - Thawte Code Signing CA

    VeriSign代码签名证书的根证书链为: VeriSign Class 3 Public Primary CA - VeriSign Class 3 Code Signing 2004 CA

    使用微软的 SignCode.exe 就可以对微软的代码进行签名,如果您没有此文件,点击 这里 下载。 Signcode.exe 可以使用 DOS 命令行方式实现签名,我们推荐用户使用数字签名向导方式,简单方便。请注意:如果您开发的ActiveX为IE加载项,请先数字签名每个CAB文件中的.dll和.ocx等文件,再把这些文件打包成.cab文件后再数字签名.cab文件,以确保所有IE加载项都被IE验证和信任,否则会显示“未验证”而可能影响正常运行。

    具体签名向导过程如下:

    (1) 运行 Signcode.exe , 要求您选择需要签名的文件,支持:可执行文件 (*.exe; *.dll; *.ocx) ; Cabinet 打包文件 (*.cab) 和目录文件 (*.cat) ,如下图 1 所示 ( 如: TestSign.cab) ,请注意:如果签名的文件已经有数字签名,则会被新的签名覆盖:

    (2) 点击“下一步”后,如下图 2 所示,会要求您选择“签名类型”,缺省的“典型”签名类型;请选择“自定义” 签名类型:

    (3) 如下图 3 所示,点击“从文件选择”签名证书 ( 公钥文件 ),如: WotoneCS.spc :

    (4) 点击“下一步”后,如下图 4 所示,会要求您选择私钥文件,如: WotoneCS.pvk ,其他参数不用动:
    (5) 点击“下一步”后,如下图 5 所示,会提示要求输入私钥密码:
    (6) 点击“下一步”后,如下图 6 所示,会提示要求选择散列算法 ( 摘要算法、缩微图算法 ) ,缺省为 sha1 ,也可以选 md5 :
    (7) 点击“下一步”后,如下图 7 所示,选择哪些证书包括到数字签名中,直接点击“下一步”即可,即选择缺省的包括根证书:
    (8) 如下图 8 所示,要求填写该签名代码的功能描述,推荐一定要认真填写,因为此信息将会在最终用户下载此代码时显示,有助于最终用户了解此代码的功能以确定是否下载安装。第一行“描述”是指此代码的功能文字描述,第二行“ Web 位置”则让最终用户点击文字描述来详细了解此代码的功能和使用方法等,本演示中的“ Web 位置”为WoTrust代码签名证书简介页面:

    (9) 点击“下一步”后,如下图 9 所示,选中“将时间戳添加到数据中”,请使用:

WoSign 免费提供的时间戳服务URL: http://timestamp.wosign.com/timestamp

或 VeriSign 免费提供的时间戳URL:http://timestamp.verisign.com/scripts/timestamp.dll

    时间戳服务非常重要,添加时间戳后,即使您的代码签名证书已经过期,但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信,最终用户仍然可以放心下载,使得即使代码签名证书已经过期,您也无需重签和重新发布已经签名的代码。

    (10) 点击“下一步”后,如下图 10 所示,会提示已经完成数字签名向导,点击“完成”后还会提示您输入私钥密码,就完成代码签名证书的代码签名。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值