数字签名(以ActiveXDemo为例)

1.创建Install.inf文件和run.bat

Install.inf:

[version]

signature="$CHICAGO$"

AdvancedINF=2.0 


[Setup Hooks]

HOOKRUN1=HOOKRUN1


[Deployment]


InstallScope=user


[HOOKRUN1]

 
run=%EXTRACT_DIR%\run.bat

run.bat:

set CURDIR=%cd%

msiexec.exe /i "%CURDIR%\ActiveXDemo.Setup.msi" /qn

 2.创建cab文件(下载cabsdk.exe,加压之后需要其中的cabarc.exe---打包)

F:\Projects\ActiveXDemo\CABARC.EXE N 
F:\Projects\ActiveXDemo\ActiveXDemo.cab
F:\Projects\ActiveXDemo\ActiveXDemo.Setup.msi
F:\Projects\ActiveXDemo\Install.inf F:\Projects\ActiveXDemo\run.bat

注释:将canarc.exe、ActiveXDemo.Setup.ms、Install.inf和run.bat保存到同一目录,进入cmd执行上面的命令,将ctiveXDemo.Setup.ms、Install.inf和run.bat打包成ActiveXDemo.cab文件

3.在网上下载signtool.rar并解压,进入DOS系统,通过cd命令进入到解压后的文件夹下面(“cd %path%\signtool\”),并将刚才生成的ActiveXDemo.cab拷贝到当前m目录下

4.创建证书文件

进入到上面的目录后,输入以下命令:

makecert -sv ActiveXDemo.pvk -r -n "CN=SunStar" ActiveXDemo.cer

利用MakeCert生成一个 证书.cer和一个私钥.pvk,同时创建私钥和公钥

5.转换证书

cert2spc ActiveXDemo.cer  ActiveXDemo.spc

用Cert2Spc将.cer文件转换成为PKCS #7软件发布Certificate(.spc文件)

6.创建另外一个自签名证书,叫test.cer

makecert -sv test.pvk -r -n "CN=SunStar" test.cer

cert2spc test.cer test.spc

7.从test.cer创建test.ctl文件

makectl test.cer test.ctl

8. 用ActiveXDemo.pvk和ActiveXDemo.spc这两个文件给test.ctl作数字签名

signcode -v ActiveXDemo.pvk -spc ActiveXDemo.spc test.ctl

9. 把test.ctl移动到受信系统存储区(管理证书)

certmgr -add -ctl test.ctl -s trust 

10. 把ActiveXDemo.cer移动到根系统存储区

certmgr -add -c ActiveXDemo.cer -s root    

11. 用test.pvk和test.spc给ActiveXDemo.cab作数字签名(将证书部署到.cab)

singcode -v test.pvk -spc test.spc  ActiveXDemo.cab

12. 检查文件是否通过验证(检查部署证书后的.cab是否正确)

chktrust ActiveXDemo.cab

13.如果文件通过了数字签名检测,系统会询问是否安装这个文件,这时候一定要选择安装,整个签名过程才能完成。

(8-11类似于图形化的运行signcode.exe进行数字签名向导)

posted @ 2015-12-09 22:49  贝尔格里尔斯  阅读(785)  评论(0编辑  收藏  举报