制作签名的工具软件:(这个装了VS的话。全部工具都有了)
1、makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥
2、cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书
3、signcode.exe 将证书签署到ocx上去
4、chktrust.exe 检查签署证书后的ocx是否正确
还有一个certmgr.exe,是管理证书用的。可以从这里面导出root.cer来。(这个倒还没有用,没有多大的影响。)
签名软件可以对dll、ocx以及VB的打包向导的.cab 文件进行签名
1、创建一个自己的证书文件:
(1)
makecert /sv "Record.PVK" /n "CN=ZqbaSoft" test.cer
这
里,Record.PVK表示新创建的私人密钥保存文件名,ZqbaSoft是你想显示的公司名,test.cer是你创建最后的证书文件名。最后得到
Record.PVK和test.cer两个文件。其中,运行过程中需要输入私人密钥的保护密码,一定要输入一致,不要出错。
(2)
a)建立自己的根证书:
makecert -sk "Record.PVK" -ss myName -n "CN=Zqba.com,E=zqba@zqba.com,O=XDK" test.cer
sk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置;
如果你需要导出私钥文件,请不要使用sk,而换作sv,例:makecert -ss myName -n "CN=Zqba.com" -sv c:\Record.PVK -r c:\test.cer
b)建立自根证书授权的子证书:
makecert -sk "myPK" -is myName -n "CN=公Zqba.com" -$ commercial -ic c:\test.cer c:\xdk.cer
sk-表示主题的密钥容器位置,is-颁发者的证书存储名称, n-证书颁发对象,ic-颁发者的证书存储位置,-$-授权范围(用于代码签名);
2、使用Cert2Spc生成spc发行者证书(转换cer格式为spc格式,可以省略):
cert2spc c:\xdk.cer c:\xdk.spc
3、给ocx或cab包进行签名
运行signcode,命令行的我没有试验通过,我是通过界面实现的。signcode运行后会出现数字签
名向导,首先选择你要签名的ocx,下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,这样才能从文件选择证书,选择前面制作的
xdk.spc,再下一步是选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散列算法,一般用md5就可以了,下一步是选择其他证
书,直接下一步,填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,再下一步是加盖时间戳,直接下一步就完成了。
4、用chktrust检查是否正确
chktrust -v test.cab
把这个CAB文件放到你的服务器上,用下列代码说明你的codebase,就会自动下载了。
<object classid="clsid:7E0CDEE7-DC80-4F37-9410-790BB5E9270E" codebase="http://zqba.com/test.cab#version=1,0,0,1" width="800" height="191">
就这样,得到了一个测试证书,虽然只是一个测试证书,但至少保证这个ocx在ie浏览的时候能够弹出来一个窗口,问你是否安装,而不是直接禁止了。
在一下午的测试中发现,在xp SP2系统下,弹出安装,就算是点确定都是不可以下载,XP还会自动屏蔽的。在win2K,VB6,vs.net2002下调试通过。
总结一下,在命令行下,也就是四个步骤:
1、makecert /sv "Record.PVK" /n "CN=ZqbaSoft" test.cer
2、makecert -sk "Record.PVK" -ss myName -n "CN=公司名称,E=email,O=作者" test.cer
3、makecert -sk "myPK" -is myName -n "CN=公司名称" -$ commercial -ic c:\test.cer c:\31.cer
4、cert2spc c:\31.cer c:\31.spc
运行signcode,按向导生成就行了。
备:^_^
makecert,MS如是说:http://msdn2.microsoft.com/zh-cn/library/bfsktky3.aspx
cert2spc ,MS如是说:http://msdn2.microsoft.com/zh-cn/library/f657tk8f.aspx
signcode,MS如是说:http://msdn2.microsoft.com/zh-cn/library/9sh96ycy.aspx
posted on 2007-02-16 18:03
Perry 阅读(947)
评论(0) 编辑 收藏