ActiveX控件的另类免费签名法
我都快给急死了,要是无法签名,那这个项目可就无法做下去了,这么一个小单专门去买个证书又不合算。前几个月硬盘坏过一次,以前用的签名文件都没了,搬出刻录的备份光盘一张一张的找,发现有一个文件名为“赖起疆.pfx”的证书文件,嘿……一时没想起来这个证书是干嘛用的,试着安装这个证书,发现是淘宝网支付宝的备份证书,看了一下证书的信息,嘿……心想,有门,可以试试。
先从IE中导出证书文件
运行签名工具signcode.exe
文中提到的数字签名工具包,请在此处下载
https://files.cnblogs.com/interdrp/SignTool.rar
时间戳地址为: http://timestamp.verisign.com/scripts/timstamp.dll
好了,现在我们来验证一下签名的结果
在已签名的ActiveX控件单击右键-->属性
我们来看一下签名的详细信息
我们来看看最终在IE上运行的结果
好了,完全成功!
最后说明一下,使用的证书是淘宝网支付宝的证书,只要你有用支付宝,那么你就有这么一个以你名字命名的数字证书,同时也不怕证书会过期,只要证书过期了,你上淘宝网,注销一下证书,重新生成一份就是了。
因我的系统是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>