查证了许多文档后记此文,记述打包过程。如有错误请及时通知。
工具/原料
makecert.exe制作cer格式证书并创建私钥和公钥
iexpress.exewindows提供CAB向导工具
cert2spc.execer格式证书转spc证书用
signcode.exe证书签署到ocx
chktrust.exe检验签署的OCX证书是否正确
certmgr.exe管理证书用
方法/步骤
1、首先制作INF文件(RemtCard.dll是我的OCX,我采用ATL+ATLCONTROL工程,非MFCACTIVEX工程)
2、制作CAB文件-CMD输入iexpress,将启动Iexpress向导
3、选中"Cr娣定撰钠eatenewSelfExtractionDirectivefile",单击"下一步(N)",会出现:
4、选择"Cr娣定撰钠eatecompressedfilesonly(ActiveXInstalls)媪青怍牙",单击"下一步(N)",单击Add,添加INF文件中所列所有文件(DLL及DEF等)
5、单击"下一步(N)",单略居承柘击Browse按钮选择RemtCard.CAB文件,同时选中“Store熠硒勘唏filesusinglongNameinsidePackage”checkbx
6、选择"Don'tsave"单选按钮并单击"下一步(N)"按钮
7、出现完成画面,单击完成按钮将同时生成RemtCard.CAB文件。
8、自制数字证书-用CMD进入到控件所在的目录;创建PVK文件(私人密匙文件),CMD输入锞蕈漉栽“makecert-skRemt潮贾篡绐CardRemtCard.pvk-nCN=XXXXXXX”,然后回车(需要注意切换到makecert.exe目录执行)特别注意:最好按22步命令输入
9、创建CER文件(公司证书),CMD输入“makecert-skRemtCard.pvkRemtCard.cer”,然后回车,在相对目录下会出现一个安全证书
10、生成文件如下:
11、创建SPC测试软件出版商证明书,CMD输入“cert2spcRemtCard.cerRemtCard.spc”,然后回车
12、在CMD中运行signcode,
13、选择RemtCard.CAB
14、选择好RemtCar蟠校盯昂d.CAB文件后单击"下一步(N)"按钮,在选择想要的签名类型里选择"自定义(C)"按钮并单击"下一步(N)"按钮
15、单击"从文件选择(F)"按钮,选择刚制作的RemtCard.cer
16、单击"下一步(N)"按钮,并选择"CSP中的私钥(K)"。
17、单击"下一步(N)"按钮,在散列算法中选择"shal",并单击"下一步(N)"按钮
18、"证书路径中的证书"中选择"证书路径中的所有证书水貔藻疽,包括根证书(C)",在"稆糨孝汶;其它证书(可选)”中选择“包括在以下PKCS#7证书(.p7b)文件中的证书(P):"”,并单击"浏览(R)…"按钮选择RemtCard.spc文件,选择完后,单击"下一步(N)"按钮
19、"数据描述"窗口中输入公司的名称及网址并单击"下一步(N)"按钮
20、跳过时间戳进入到完成界面
21、可能点击完成,会出现以下错误
22、解决办法创建PVK命令时输入:makec娣定撰钠ert-$"individual"-r-skRemtCardRemtCard.pvk-nCN=XXXXXXX
23、选择md5