ActiveX控件的另类免费签名法

这几天手上在做一个项目,要用到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来判断对方电脑是否安装有《淘宝》的安全插件,如果没有,那么在代码中连接到《淘宝》网下载安装一个控件,这样在客户电脑上就有了淘宝的根证书了,然后会再下载安装我们的控件。

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

<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=\"1px;height:1px;\"></OBJECT>");
}else {
}                
</script>
原文地址:https://www.cnblogs.com/interdrp/p/1448382.html