关于Active控件的电子签名

    自己制作证书,客户端安装证书后就可以识别该控件。安装一遍后以后就不用安装了,所有的 active 控件均可以使用此证书。证书的效果如图:    

       

证书的安装位置:

       

 

证书的制作以及控件打包过程,转载如下:

1 ocx 文件以及第三方 dll 文件打包成 cab 文件:

Internet 软件分发单位是软件包,它由包含.INF 文件或软件分发.OSD 文件(或两者都包括)的.CAB 文件所组成。一个分发单位也可以包含软件组件,如  ActiveX  控件(.OCX).DLL 文件、.EXE 文件、Java 类文件或小程序。当 Web 页上 OBJECT 元素的 CODEBASE 特性引用包含.INF 文件的.CAB 文件时,Internet Explorer 将自动把.CAB 文件作为软件分发单位下载并安装,每次访问时还会自动检测版本并进行更新。

INF 文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如.DLL 或者其它.OCX)。一个.INF 文件就捆绑了.CAB 压缩文件所有的必须文件。 缺省情况下,与现有硬盘中文件版本号相同的文件不被下载。

先自己写了一个 inf 文件,其中信息包括将.ocx 文件,以及相关的.dll 文件打包,并下载到文件夹:\WINDOWS\system32,详细标注如下:

[version]    

signature="$CHICAGO$"

AdvancedINF=2.0

 

[DefaultInstall]    

CopyFiles=install.files

RegisterOCXs=RegisterFiles

[RInstallApplicationFiles]

CopyFiles=install.files

RegisterOCXs=RegisterFiles

[DestinationDirs]

install.files=11 

[SourceDisksNames]    

1=%DiskName%,TestCAB.CAB,1 

 

[Add.Code]

pcpos.ocx=pcpos.ocx

Comm.dll=comm.dll

pcpos.dll=pcpos.dll

TCPCLNT.dll=TCPCLNT.dll

 

[install.files]

pcpos.ocx=pcpos.ocx

Comm.dll=comm.dll

pcpos.dll=pcpos.dll

TCPCLNT.dll=TCPCLNT.dll

 

[SourceDisksFiles]

pcpos.ocx=1

Comm.dll=1

pcpos.dll=1

TCPCLNT.dll=1

 

[pcpos.ocx]

file-win32-x86=thiscab    

RegisterServer=yes    

clsid={719A1D6E-7099-4123-9D63-F0118AFF2D61}    

DestDir=11    

FileVersion=1,0,0,1

 

[Comm.dll]

file-win32-x86=thiscab    

RegisterServer=yes                         

DestDir=11    

FileVersion=1,0,0,1

 

[pcpos.dll]

file-win32-x86=thiscab    

RegisterServer=yes      

DestDir=11    

FileVersion=1,0,0,1

 

[TCPCLNT.dll]

file-win32-x86=thiscab    

RegisterServer=yes      

DestDir=11    

FileVersion=1,0,0,1

 

[RegisterFiles]    

%11%\pcpos.ocx

 

注释:

"thiscab" 是一个关键字,意指包含该 INF CAB 文件。也可以从网上下载所需要的 DLL 文件,只要指定一个 HTTP  网址即可,如:

file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL

关键字"file-win32-x86" 指定平台是  x86

文件版本号可见属性。

"DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录  WINDOWS/ /SYSTEM32;

"clsid" 指的是要安装控件的 CLSID

 

制作 cab

使用\WINDOWS\system32\iexpress.exe

        1)选择“Create new Self Extraction Directive file”,点击下一步。

        2)选择“Create compressed files only(ActiveX Installs)”,点击下一步。

        3)点击Add,文件添加(pcpos.ocx,pcpos.dll,comm.dll,tcpclnt.dll),点击下一步。

        4)点击Browse,输入.CAB文件的存放地址(包含所取文件名),这里取 TestCAB.CAB,并且要选中 “Store files using Long File Name inside Package”。点击下一步。

        5)选择“Don’t save”,一直点击下一步,直到完成。

 

注意:

如果控件已经在客户机注册,并且不是通过.CAB的方式注册,那么通过.CAB自动注册的时候,该控件将无法被更新。必须先手动删除该文件。

 

2 CAB文件进行数字签名

    传说中数字签名之后就可以不出现提示而自动下载,所以也试试:

    在\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin 中间有三个小工具,就用他们来实现数字签名。

     1)Makecert.exe ---证书创建工具

     2)Cert2Spc.exe ---发行者证书测试工具

     3)Signcode.exe ---文件签名工具

 

步骤:

        1)makecert -ss name -n "CN=公司名" -sv d:\pos.pvk -r d:\pos.cer 其中sk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置,-sv 导出私钥文件(为了签名使用)。注意:这个时候会让输入三次密码,三次要完全一致。

        2)使用Cert2Spc生成spc发行者证书(可选):cert2spc d:\pos.cer c:\pos.spc

        3)双击signcode,不带参数会启动签名向导。先选择要签名文件,下一步,选择自定义,下一步,选择从文件选择,添加刚生成的pos.cer证书,下一步,选择刚生成的私钥pos.pvk,再下一步,可spc证书,再一直下一步。添加时间戳,在时间戳填入http: //timestamp.verisign.com/scripts/timstamp.dll TestCAB.CAB,再下一步完成。

 

    这样就对CAB文件进行了签名,但是这个时候点击这个文件会发现证书不可用,原因是证书没有安转。文件属性->数字证书->详细信息-〉查看证书-〉安装证书,进入安装证书向导,存放区域选择受信任的根证书颁发机构,点击完成即可。

 

    在客户端测试:

        1)加入证书,浏览器-〉工具-Internet选项-〉内容-〉证书-〉受信任的颁发机构-〉导入证书。

        2)在有证书的情况下,如果服务器没有加入可信任网址,提示下载的时候会显示证书所签内容,没有证书则提示为未知

        3)如果服务器已加入可信任网址,并且已导入证书,则不提示任何信息,在用户毫无感觉情况下下载。如果没有加入可信任网址,控件可以正常下载但仍然不能正常使用,与是否签名无关。

 

问题:

1.是否可以不添加可信任网址

2.数字签名的作用,授权证书与不授权证书的区别。

控件正支持全部Office菜单,支持Office的打印预览,控件强大的B/S通讯技术, 能够将服务器数据库中的数据或者用户自定义的数据插入当前文档的指定位置,而且 还可以将文档中的指定数据随时保存到服务器数据库或者指定的目录中.控件能够在浏 览器窗口中直接编辑Word文档并保存到Web服务器上。实现文档和数据库的统一管理。 控件同时支持痕迹保留,手写名,电子印章等办公自动化系统必备的功能。 控件采用标准HTTP协议,支持任意后台Web服务器,任意后台编程语言(Asp, Jsp, Php,VB.NET,C#.NET等) 控件功能: 1.控件采用xml数据格式传输,有良好的扩展性. 2.控件支持多种网络传输协议(Ftp,http). 3.控件支持标准的http协议80端口(自已可定义端口),可以有效地跨过防火墙对控件的影响. 4.控件支持多种存储方式,可以直接存放在指定的目录也可以存储在数据库中方便管理. 5.存储在数据库中或存储在目录中的文档数据是加密处理(需要密钥)大大加强文档的安全性. 6. 数据库支持功能 支持文件保存到服务器数据库中,可以支持多种数据库,如SQL Server,Oracle,Sybase,MySql,Access等。 7.控件支持数据模板拟稿时选择模版套红. 8.强制留痕受到密码保存,文档就算脱离控件也可以继续强制留留痕. 9.手写名,可支持任意的手写板(不可以鼠标画)名或意见. 10.可以准确检测有效的名,还可以做到对有效名进行特显,使得更形象展示有效的名. 11.控件电子盖章功能实现印章或名资源预保存功能,用户可以通过密码的方式来获得自己的名或印章,印章和名与 文档保存在一起,印章或名可以功过系统的验证来判断真伪。 12.盖章数据是根据标准的加密方式.用户只有通过明钥和密钥的认证后才可以得到用户的盖章数据.大大加强了盖章的安全性. 13.控件的二次开发提供强大的函数库,支持多种系统环境,多种开发语言,多种数据库。 14.控件支持日志功能,文档的每一个修改操作都可以记录以供用户校对. 15.控件完全支持office菜单功能. 16.控件可以做到打印预览. 17、模版套红.控件支持数据模板拟稿或定搞时选择模版套红。 18.插入透明浮动图片.支持从服务器插入透明浮动图片到Word文档支持将服务器图片插入到Word文档的指定位置。 19.版本控制功能.版本控制功能,能够让您对WORD和EXCEL文档有更多的控制。
WORD2003章插件 1.前言 这是我学习ATL的成果,学习过程及程序的编写,前前后后共用了一个多月的时间,花了不少的心血。其间遇到了不少困难,终于都一一解决了。这要感谢www.csdn.net上的热心朋友,从他们的BLOG文章中,我获得了不少灵感。现在这个软件基本完成了,全部实现了我自己定的设计需求,自己觉得这个软件还有一定的用处,就把它的测试版发布一下,希望使用者多提宝贵意见。 注:测试版没有任何的功能限制,只是“关于”对话框中显示测试版字样。 2.功能 可以完成手写名及插入章的功能。插入名或章后,可以监控WORD文档是否被修改。软件的使用界面很简单,只是在WORD里插入了一个工具栏,上面有三个按钮。其它的功能在插入的名或章上按右键根据弹出菜单选择执行。 印章支持多种格式图片,如BMP,JPG,GIF(静止的)等,使用时用印章管理工具把这些导入到印章库即可。 印章库管理密码:12345   几个内置的印章使用密码:111111 3.软件的使用:   使用windows系统带的控件注册工具regsvr32.exe,注册一下XXHSignature.dll即可;或者直接运行当前目录下的Register.exe,也可完成注册。这样打开word就可以看到名工具栏。 软件包含以下几个文件: steal.mdb 印章库。 xxhsignature.ini 配制文件,如果没有会自动生成。 XXHSignature.dll WORD2003的COM加载项。程序的主体。 Register.exe 注册/卸载XXHSignature.dll用,可以不使用,直接使用regsvr32。 register.bat 注册的快捷方式,调用register.exe。纯属辅助,方便使用。 unregister.bat 卸载的快捷方式,带命令行参数调用register.exe。纯属辅助,方便使用。 StealManager.exe 印章管理工具。 说明文档.txt 说明文档。 软件使用VC6、ATL开发,没有使用MFC,所以每个软件都很小巧。 我在开发时使用的环境为XP、WORD2003,对软件在其它环境下没有进行过测试,不知道存不存在兼容问题。期待大家的反馈,可以给我发EMAIL,或者到我的博客留言。 如果程序运行有问题,可以使用Unregister.bat或regsvr32 /u将其卸载即可。也可以使用WORD的加载项管理菜单(该菜单默认时不显示,可以点击工具->自定义中找到使之显示),禁止插插件启动时运行。 另外:软件编译为UNICODE,对WIN98肯定是不支持。 欢迎转载,转载时请不要删除这些信息。谢谢。 2006-04-25 作者:wallimn email:wallimn@sohu.com QQ:54871876 博客:http://blog.csdn.net/wallimn 1.1版更新   新版的进行了以下几项改进:     a.名及字对文档内容、文档字体颜色以及文档字体大小敏感,也就是说:修改文档内容、文档中任意字的字体颜色或大小,都会导致文档名失效。这是个很重要的功能,不知大家有没有意识到。试想一下,如果对合同字,合同金额为100000,在WORD里将数字的后几个0改成白色,如果名不对字体颜色敏感,那么名仍然有效,而合同金额看起来就锐减了。所以说,对字体颜色及大小不敏感,是个很严重的漏洞。市场上的几款其它名软件基本都有这个漏洞。     b.修改了WORD中名工具栏有时不显示的BUG。     c.当文档名失效时,重新打开文档的时候,会显示个红叉,直观的显示名失效。 2008-02-23 1.2版更新   添加了读取网络图章功能,可以通过HTTP协议读取放在远程网络上的图章。不需要专门的图章服务器,可以使用任意的WEB服务提供程序,如IIS,tomcat等,将软件包中的web目录部署(白话:拷贝)到WEB的某个目录(tomcat中,考到某个上下文)就可以了。   然后在“网络图章”对话框中,输入对应的地址,如:http://127.0.0.1/web,点刷新就可以了。 2008-10-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值