您的位置:首页 > 其它

ActiveX控件数字签名实践(免费签名)

2010-07-29 16:51 302 查看
ActiveX控件可以自己签名,但是证书认证需要花钱的,不过也可以使用一种办法不用花钱就能认证。

数字签名工具包下载:SignTool.rar /Files/KimSky/SignTool.rar

-----------------------------------------------------

一.自己创建证书文件:

-----------------------------------------------------

1. 先使用makecert /sv "私钥文件名.pvk" /n "CN=你的信息" "证书文件名.cer",创建相应的
私钥和证书文件(会有成功提示)
私钥要让你输入一个字符串,前后要输一样。我直接用GUID

2、使用cert2spc "证书文件名.cer" "#7文件名.spc" (会有成功提示)

3、使用VB做好控件,并生成OCX文件,经过打包成.CAB文件(同时还有个测试用的.HTM文件)

4、双击signcode执行。

一、选择被加入证书的文件(这儿最容易出错,应选择那个.CAB文件,很多朋友是选了.OCX文件,就是错在这儿了)

二、(使用自定义)选择.SPC文件 

三、选择.PVK文件。

下面就一路NEXT就行了。

-----------------------------------------------------

二.使用第三方认证证书:这里使用支付宝证书

-----------------------------------------------------

1.双击打开SignCode.exe,选择要数字签名的cab文件。

2.选择自定义。

3.选择“从存储区选择...”

然后一路 下一步 就可以了。

其中时间戳服务器,这里有个免费的:http://timestamp.verisign.com/scripts/timstamp.dll 写上去就完了,这样就完成了签名

也可以不填写时间戳

至此,数字签名完成
在DOS窗口下,输入

chktrust.exe E:\myTest\08\Package\WebRTF.CAB
对我们的成果进行检验

最后说明一下,使用的证书是淘宝网支付宝的证书,只要你有用支付宝,那么你就有这么一个以你名字命名的数字证书,同时也不怕证书会过期,只要证书过期了,你上淘宝网,注销一下证书,重新生成一份就是了。

因我的系统是Windows 2008 所以如果你用Vista以前的系统运行后看到的图片跟我的贴图可能有点不一样。

有一个问题要注意,如果签名成功后,你的控件还是无法在IE中显示,那很大的可能是你控件本身有问题。

在实际应用当中并不是所有的电脑用户都有使用《淘宝》网上购物的,那么,针对这类用户,其实有一个很另类的方法,就是在网页上用JavaScript来判断对方电脑是否安装有《淘宝》的安全插件,如果没有,那么在代码中连接到《淘宝》网下载安装一个控件,这样在客户电脑上就有了淘宝的根证书了,然后会再下载安装我们的控件。

以下为在网页中插入的脚本:

<script type="text/javascript">
var itruspta1;
try {
itruspta1=new ActiveXObject("PTA.iTrusPTA");
}catch(e){
}
//判断是否安装控件
if(itruspta1==null){
document.write("<OBJECT id=\"iTrusPTA\" codeBase=\"https://img.alipay.com/download/1101/aliedit.cab#Version=2,4,2,471\" classid=\"clsid:1E0DFFCF-27FF-4574-849B-55007349FEDA\" style=\"width:1px;height:1px;\"></OBJECT>");
}else {
}
</script>


if ($ != jQuery) {
$ = jQuery.noConflict();
}

我觉得使用第二种方式可以免费使用证书,但是可能会对你的这个证书造成不安全因素。

所以我想还得找另一种方法:ActiveX手动下载安装包。

参考:

/article/4662124.html

http://www.lougoo.com/blog/article.asp?id=234

/article/4911375.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: