Download address: http://msdn.microsoft.com/MSDN-FILES/027/000/219/codesign.exe
工具包包括以下几个软件:
makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥
cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书
signcode.exe 将证书签署到ocx上去
chktrust.exe 检查签署证书后的ocx是否正确
还有一个certmgr.exe,是管理证书用的。可以从这里面导出root.cer来,
网上很多文章写到这个证书,但是在VC的安装盘中却找不到。其实,没
有也没关系的。这几个软件可以从VC的安装盘中找到。
下面是具体的步骤:
1、创建一个自己的证书文件:
makecert /sv "Record.PVK" /n "CN=DreamCaptial" dream.cer
这里,Record.PVK表示新创建的私人密钥保存文件名
DreamCaptial是你想显示的公司名
dream.cer是你创建最后的证书文件名
这些根据你自己的要求填写,最后得到Record.PVK和dream.cer两个文件。
其中,运行过程中需要输入私人密钥的保护密码,一定要输入一致,不要
出错。
2、转换cer格式为spc格式(可以省略)
cert2spc dream.cer dream.spc
得到dream.spc文件。
3、用VS6工具中的 Package & Deployment Wizard 生成internet分发的CAB包,同时生成分发代码(.htm,其中包含使IE可以自动下载安装包的代码)。现在得到了2个文件DataTransfer.CAB和DataTransfer.htm。
.htm中包含类似如下的代码:
<OBJECT ID="DataExchange" CLASSID="CLSID:B215C664-978A-46A6-B766-5D5FDEE7586D" CODEBASE="http://192.168.42.133/DataTransfer.CAB#version=1,0,0,0"></OBJECT>
注意:一定要写上"http://192.168.42.133/",有时程序不给生成,真正发行时最好使用url。
4、给CAB文件签名
运行signcode,命令行的我没有试验通过,我是通过界面实现的。
signcode运行后会出现数字签名向导,首先选择DataTransfer.CAB,
下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,
这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是
选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散
列算法,一般用md5就可以了,下一步是选择其他证书,直接下一步,
填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,
再下一步是加盖时间戳,我不会,直接下一步就完成了。
5、用chktrust检查是否正确
chktrust -v DataTransfer.CAB
6、将签名后的DataTransfer.CAB和DataTransfer.htm复制到IIS的某个目录下。
7、在IE中打开DataTransfer.htm文件进行测试。
补充:--- 给通过IE自动安装的CAB包进行数字签名及实现分发的过程 ---
3、用VS6工具中的 Package & Deployment Wizard 生成internet分发的CAB包,同时生成分发代码(.htm,其中包含使IE可以自动下载安装包的代码)。现在得到了2个文件DataTransfer.CAB和DataTransfer.htm。
用于VS6工具中的 Package & Deployment Wizard 好像是only for VB的,故用不来!5555
用cabarc吧!下载地址
http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/Cabsdk.exe
用cabarc能生成cab包,对于.htm,如果用VC的atl向导的话,atl会自动生成*.htm文件,
只是不列在file list中,请用file->open打开与atl相应的htm文件,添加相应选项(例如:CODEBASE="http://192.168.42.133/DataTransfer.CAB#version=1,0,0,0 等)即可。
这样*.cab 和*.htm都有了,你可以测试了!:)