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窗口下,输入
对我们的成果进行检验
最后说明一下,使用的证书是淘宝网支付宝的证书,只要你有用支付宝,那么你就有这么一个以你名字命名的数字证书,同时也不怕证书会过期,只要证书过期了,你上淘宝网,注销一下证书,重新生成一份就是了。
因我的系统是Windows 2008 所以如果你用Vista以前的系统运行后看到的图片跟我的贴图可能有点不一样。
有一个问题要注意,如果签名成功后,你的控件还是无法在IE中显示,那很大的可能是你控件本身有问题。
在实际应用当中并不是所有的电脑用户都有使用《淘宝》网上购物的,那么,针对这类用户,其实有一个很另类的方法,就是在网页上用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>
我觉得使用第二种方式可以免费使用证书,但是可能会对你的这个证书造成不安全因素。
所以我想还得找另一种方法:ActiveX手动下载安装包。
参考:
http://www.cnblogs.com/babyt/archive/2005/03/14/118309.html
http://www.lougoo.com/blog/article.asp?id=234
http://www.cnblogs.com/interdrp/archive/2009/05/03/1448382.html