OCX制作CAB及数字签名
的有关信息介绍如下:查证了许多文档后记此文,记述打包过程。如有错误请及时通知。
首先制作INF文件(RemtCard.dll是我的OCX,我采用ATL+ATL CONTROL工程,非MFC ACTIVEX工程)
制作CAB文件- CMD 输入 iexpress,将启动Iexpress向导
选中"Create new Self Extraction Directive file", 单击"下一步(N)",会出现:
选择"Create compressed files only(ActiveX Installs)",单击"下一步(N)",单击Add,添加INF文件中所列所有文件(DLL及DEF等)
单击"下一步(N)",单击Browse按钮选择RemtCard.CAB文件,同时选中 “Store files using long Name inside Package”checkbx
选择"Don't save"单选按钮并单击"下一步(N)"按钮
出现完成画面,单击完成按钮将同时生成RemtCard.CAB文件。
自制数字证书-
用CMD进入到控件所在的目录;
创建PVK文件(私人密匙文件),CMD输入“makecert -sk RemtCard RemtCard.pvk -n CN=XXXXXXX”,然后回车(需要注意切换到makecert.exe目录执行)特别注意:最好按22步命令输入
创建CER文件(公司证书),CMD输入“makecert -sk RemtCard.pvk RemtCard.cer”,然后回车,在相对目录下会出现一个安全证书
生成文件如下:
创建SPC测试软件出版商证明书,CMD输入“cert2spc RemtCard.cer RemtCard.spc”,然后回车
在CMD中运行signcode,
选择RemtCard.CAB
选择好RemtCard.CAB文件后单击"下一步(N)"按钮,在选择想要的签名类型里选择"自定义(C)"按钮并单击"下一步(N)"按钮
单击"从文件选择(F)"按钮,选择刚制作的RemtCard.cer
单击"下一步(N)"按钮,并选择"CSP中的私钥(K)"。
单击"下一步(N)"按钮,在散列算法中选择"shal",并单击"下一步(N)"按钮
"证书路径中的证书"中选择"证书路径中的所有证书,包括根证书(C)",在"其它证书(可选)”中选择“包括在以下PKCS #7 证书(.p7b)文件中的证书(P):"”,并单击"浏览(R)…"按钮选择RemtCard.spc文件,选择完后,单击"下一步(N)"按钮
"数据描述"窗口中输入公司的名称及网址并单击"下一步(N)"按钮
跳过时间戳进入到完成界面
可能点击完成,会出现以下错误
解决办法
创建PVK命令时输入:makecert -$ "individual" -r -sk RemtCard RemtCard.pvk -n CN=XXXXXXX
选择md5