创建带签名的cab包的完整流程

 

创建代码签名:

1. 制作cab

制作cab包之前首先要编写 .inf 文件,这个比较麻烦,可以参考现成的例子,如:

[version]

Signature="$CHICAGO$"

AdvancedINF=2.0

 

[Add.Code]

HebcaMailClient.ocx=HebcaMailClient.ocx

 

[HebcaMailClient.ocx]

file-win32-x86=thiscab

clsid={78D1D24A-C552-4402-95FA-E9CA2E8924F2}

FileVersion=1.0.1.1

RegisterServer=yes

 

制作cab包的工具很多,有CabMakercabArcMakeCab等。我用的是CabMaker,挺好用的,打开后选择一个路径打包就可以了。

 

2. 获取代码签名证书

获取代码签名证书,可以从CA认证公司去申领。如果是个人测试,可以自己创建测试用的证书。可以用makecert 工具(dotnet框架下就有),也可以用windows2000windows2003自带数字证书认证服务创建比较正规的测试证书。创建过程如下:

1) 在添加删除程序里面选择 添加/删除windows组件。

2) 选择 证书服务 然后安装即可。默认会安装证书申请的web页面。

3) 在本地输入:http://localhost/certsrv 。选择第二项然后按照提示申请代码证书即可。如果有usbkey的话,可以选择将证书颁发到usbkey上。

4) 选择管理工具-à证书颁发机构。然后将待定申请的代码签名证书选择颁发即可。

5) 在客户端需要将测试CA的根证书安装上。输入:http://ca serverIp/certsrv,选择第一项安装根证书即可。

3. cab包进行签名

这儿用signcodecab包进行签名

在命令提示行中执行

signcode

之后进入signcodewizard:

step1.选择要签名的cab文件

step2.自定义

step3.从文件中选择 myNew.spc

step4.csp中的私钥/密钥容器:myNewKey

step5.sha1

step6.next

描述、时间戳如果有的话可以添上。

4. 验证所作的签名

可以使用chktrust工具对所作的签名进行验证,

在命令行中直接使用chktrust   *.cab即可。如果出现预料结果则成功,否则,极有可能是证书有效期出现了问题。

5. 网页中测试:

</head>后面添加:

 <OBJECT classid="CLSID:78D1D24A-C552-4402-95FA-E9CA2E8924F2" CODEBASE="Package.cab#version=1,0,1.1" id="mc" VIEWASTEXT width="1" height="1">

 </object>

进行测试即可。

posted on 2007-04-27 17:02  冰封王座(.net)博客  阅读(3090)  评论(2编辑  收藏  举报